如何使用 Yum 安装 Maven?
Posted
技术标签:
【中文标题】如何使用 Yum 安装 Maven?【英文标题】:How do I install Maven with Yum? 【发布时间】:2011-11-23 21:05:41 【问题描述】:我试图不了解很多关于 yum 或 maven 的知识。我继承了这段代码,我不想在这个环境中花费更多的时间。
我有好吃的。我的安装“有”(“也附加了”?“知道”?)两个 repos:Amazon 和 JPackage,据我所知,这是一种标准。 (实际上,这些存储库中的每一个都包含两个子存储库,但我认为这不是问题所在。)
当我让 yum 安装 maven2 时,它拒绝了,说它从未听说过 maven2。
当我要求 yum 安装 maven2 忽略 Amazon 时,它会这样做,但它会安装相当旧的 Maven 2.0.9。我实际使用的 pom.xml 需要更高版本。
当我在谷歌上搜索 Maven 存储库时,我得到了 Maven 可以用来构建其他东西的存储库,而不是 Yum 可以用来安装 Maven 的存储库。 (我确实找到了一个存储库,其中包含让 Maven 构建 Yum 的东西。我认为 Google 在这一点上是在嘲笑我。)
所以,我只需要一个 repo file,它指向一个包含安装 Maven 2.2.1 所需的任何内容的 repo。
如果不是所有这些省力的设备,我可能会完成一些工作。
【问题讨论】:
【参考方案1】:yum install -y yum-utils
yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo
yum-config-manager --enable epel-apache-maven
yum install -y apache-maven
对于 JVM 开发人员,这是一个 SDK 管理器,可满足您所需的所有工具。
https://sdkman.io/
安装 sdkman:
yum install -y zip unzip
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
安装 Maven:
sdk install maven
【讨论】:
【参考方案2】:这就是我在 Amazon/AWS EMR v5 上所经历的。 (改编自之前的答案),拥有 Maven 和 Java8。
sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven
sudo alternatives --config java
选择 Java8
sudo alternatives --config javac
选择 Java8
现在,如果你运行:
mvn -version
你应该得到:
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.38.amzn1.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.47-56.37.amzn1.x86_64", arch: "amd64", family: “unix"
【讨论】:
【参考方案3】:对于那些正在寻找 2018 年安装 Maven 的方法的人:
$ sudo yum install maven
目前支持。
【讨论】:
在 Amazon Linux 2 上为我工作(2019 年 3 月)。 是的,但是我在 Amazon Linux 2 上安装了 Java 11,然后 sudo yum install maven。它安装了 Java 8 并替换了我的 11 实例。有人没想到...【参考方案4】:Maven 从 2014 年年中开始为 Fedora 打包,所以现在很容易。只需输入
sudo dnf install maven
现在测试安装,随便在一个目录下运行maven
mvn
它会失败,因为您没有指定目标,例如mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.102 s
[INFO] Finished at: 2017-11-14T13:45:00+01:00
[INFO] Final Memory: 8M/176M
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build
[...]
【讨论】:
一个愚蠢的问题是 maven 不是maven
可执行文件,而是 mvn
...【参考方案5】:
为了以后的参考和简单起见,那些不想解释太多但只是运行并使其尽快运行的懒人:
1)sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
2)sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
3)sudo yum install -y apache-maven
4)mvn --version
希望您喜欢这个复制和粘贴会话。
【讨论】:
这听起来很完美,除了收到此错误:repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/…: [Errno 14] HTTPS 错误 404 - 未找到不知道 repo 是暂时关闭还是永久关闭。跨度> @advocate 我刚刚创建了另一个服务器实例并运行了所描述的确切命令,并且工作起来就像一个魅力。抱歉回复晚了,但看起来它仍然有效。干杯。 我猜@Kate 的意思是$releasever
。
这对我有用,没有第 2 步,但它想要安装 jdk 1.7,即使我已经安装了 1.8
它安装 Java 7 并将其设置为默认值,因此它破坏了我的进一步进程:(【参考方案6】:
不只是mvn
,对于任何实用程序,您都可以通过给yum whatprovides command_name
来了解自己
【讨论】:
【参考方案7】:Icarus 为我回答了一个非常相似的问题。它不使用“yum”,但仍应适用于您的目的。试试吧,
wget http://mirror.olnevhost.net/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
基本上只需转到maven site。找到你想要的maven版本。上面wget语句的文件类型和使用镜像。
之后的过程很简单
-
从您也想提取 maven 的目录中运行 wget 命令。
运行以下命令提取tar,
tar xvf apache-maven-3.0.5-bin.tar.gz
将 maven 移动到 /usr/local/apache-maven
mv apache-maven-3.0.5 /usr/local/apache-maven
接下来将环境变量添加到您的 ~/.bashrc 文件中
export M2_HOME=/usr/local/apache-maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
执行这些命令
来源 ~/.bashrc
6:.使用以下命令验证一切是否正常
mvn -version
【讨论】:
谢谢!我可以通过jpackage
获得的最好的 maven 是 maven.noarchtbd
,它是 v1.1
或 maven2
,它是 v2.0.4
...您的备用指令对我使用 maven v3 有很大帮助:)
这些说明有效。但是,为什么他们不能将 maven 与所有其他软件包一起放在软件包存储库中,这样人们就不必跳过这些环节了?
@aroth 可能是因为有些人认为 Maven 诅咒
只需将传递给wget
的路径替换为从maven.apache.org/download.cgi 获得的路径
@Ali Apache 是否提供了一种使用其域名而不是镜像域名的方法?【参考方案8】:
您可以像这样将 maven 添加到 yum 库中:
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
现在你可以像这样安装 maven:
yum install apache-maven
完成后,将安装 maven 3,mvn -version
将显示您拥有的版本 - 我有 3.2.1。
这对我在 CentOS 6 上非常有效,但有一个例外。它安装了 OpenJDK 1.6 并使其成为默认的 Java 版本,即使我已经手动安装了 JDK 8(可能因为我手动安装了它)。要将其改回使用alternatives
:
alternatives --config java
alternatives --config javac
并选择正确的版本。
【讨论】:
如in this forum所述,下载的.repo
文件中的epel-$releasever
需要替换为epel-6
,否则yum install apache-maven
将失败并出现错误404。
即使用 epel-6 替换 epel-$releasever 也会失败,出现 404:repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/…: [Errno 14] PYCURL ERROR 22 - “请求的 URL 返回错误:404 Not Found”
是否可以使用这种方法安装特定的(例如 3.0.1)版本?
我能够使用/etc/yum.repos.d/epel-apache-maven.repo
repo 文件中的此条目使其正常工作:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
alternatives --config java
【参考方案9】:
我最近刚刚了解了一个名为fpm 的便捷打包工具。偶然发现这个问题,我想我可以试一试。原来,在阅读了@OrwellHindenberg 的回答后,很容易用 fpm 将 maven 打包成 RPM。
yum install -y gcc make rpm-build ruby-devel rubygems
gem install fpm
创建项目目录并布局包的目录结构
mkdir maven-build
cd maven-build
mkdir -p etc/profile.d opt
创建一个我们将安装到/etc/profile.d/maven.sh
的文件,我们将把它作为maven.sh 存储在新创建的etc/profile.d 目录下,内容如下
export M3_HOME=/opt/apache-maven-3.1.0
export M3=$M3_HOME/bin
export PATH=$M3:$PATH
下载并解压opt目录下的latest maven
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.tar.gz
tar -xzf apache-maven-3.1.0-bin.tar.gz -C opt
最后,构建 RPM
fpm -n maven-3.1.0 -s dir -t rpm etc opt
现在可以通过rpm安装maven了
$ rpm -Uvh maven-3.1.0-1.0-1.x86_64.rpm
Preparing... ########################################### [100%]
1:maven-3.1.0 ########################################### [100%]
和中提琴
$ which mvn
/opt/apache-maven-3.1.0/bin/mvn
不完全是yum,但离家更近;)
【讨论】:
出于我的目的,我使用了 maven 3,但打包 maven v2 也很容易。 另一个注意事项,您必须注销/登录才能使用 /etc/profile.d/maven.sh 脚本。 很好的解决方案,谢谢。顺便提一句。您也可以输入exec bash
(假设您使用的是 bash)。【参考方案10】:
需要用 yum 安装吗?还有很多其他的可能性:
从http://maven.apache.org/download.html 获取二进制文件并将其放入您的/usr/bn 中 如果您使用的是 Eclipse,您可以获得 m2eclipse 插件 (http://m2eclipse.sonatype.org/),它捆绑了一个 maven 版本【讨论】:
是的,如果我找不到更好的方法,我将在接下来的 15 分钟内完成。我犹豫的原因是 Yum 实际上是一个很好的产品如果它知道安装的所有内容。否则,没有那么多。我确信 Maven 也是一个很好的产品,它可以做一些我不需要做的事情,让库版本保持最新。我倾向于将它用作构建系统的系统,它比 shell 脚本更胜一筹,大约是 1989 年左右的 Make 的三分之一。Grrr. 好吧,如果他们只在 jPackage 存储库中维护 maven2 直到版本 2.0.7,那么您可以处理该版本,手动安装,或者您可以从 maven 的源代码创建 RPM。 apache.org 并用 yum 安装它。但是你已经说过你不想花更多的时间在这上面,所以我认为选项 1 最适合你的情况 问题是关于用 yum 安装它。 这两个答案都没有回答问题。真正的答案应该是一些可用的 yum 存储库,其中包含 maven3(最新的稳定版?)包。/usr/bn
或 /usr/bin
? /usr/local
等其他目录呢?以上是关于如何使用 Yum 安装 Maven?的主要内容,如果未能解决你的问题,请参考以下文章