如何使用Yum安装Maven?


135

我试图不对 yum或maven有所了解。我已经继承了这段代码,并且我不想在这种环境中花费更多的时间。

我好吃。我的安装“有”(“也有附件”吗?“知道”吗?)两个存储库:Amazon存储库和JPackage,据我了解这是一个标准。(实际上,每个存储库都包含两个子存储库,但我认为这不是问题所在。)

当我要求yum安装maven2时,它拒绝了,说它从未听说过maven2。

当我要求yum 忽略Amazon安装maven2时,它会这样做,但是会安装相当老的Maven 2.0.9。我拥有的实际pom.xml需要更高的版本。

当我使用Google for Maven存储库时,会得到Maven可用于构建其他内容的存储库,而不是Yum可用于安装Maven的存储库。(我确实找到了一个存储库,其中包含可以让Maven构建Yum的存储库。我认为Google目前在嘲笑我。)

因此,我所需要的就是指向一个包含我安装Maven 2.2.1 所需内容的仓库的仓库文件

如果不是所有这些省力的设备,我可能可以完成一些工作。

Answers:


215

伊卡洛斯为我回答了一个非常类似的问题。它不使用“ yum”,但仍然可以满足您的目的。尝试,

wget http://mirror.olnevhost.net/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

基本上只是去Maven网站。查找所需的Maven版本。文件类型,并将镜像用于上面的wget语句。

之后过程很简单

  1. 也从您要提取Maven的目录中运行wget命令。
  2. 运行以下命令提取焦油,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. 将Maven移至/ usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. 接下来将环境变量添加到您的〜/ .bashrc文件中

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
  5. 执行这些命令

    来源〜/ .bashrc

6:使用以下命令验证一切正常

    mvn -version

1
谢谢!最好的Maven时,我可以通过得到jpackagemaven.noarchtbd这是v1.1maven2这是v2.0.4......你的替代方法帮了不少忙,让我给行家V3 :)
pulkitsinghal

53
这些说明有效。但是,为什么不能为什么不将Maven与所有其他软件包一起放入软件包存储库中,以使人们不必跳过这些箍呢?
aroth

3
@aroth可能是因为有些人考虑过Maven厌食症
Joseph Lust

1
只需将您传递的路径替换为wgetmaven.apache.org/download.cgi
阿里

@Ali Apache是​​否提供一种使用其域名而不是镜像域名的方法?
blong

115

您可以像这样将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上非常有效。即使我已经手动安装了JDK 8,它也安装了OpenJDK 1.6并使其成为默认的Java版本(可能是因为我手动安装了它)。改回使用alternatives

alternatives --config java
alternatives --config javac

并选择正确的版本。


8
如上所述在这个论坛epel-$releasever在下载的.repo文件需要被替换epel-6,否则yum install apache-maven将失败,错误404
OR映射

即使用epel-6替换epel- $ releasever也会失败404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/…:[Errno 14] PYCURL错误22-“请求的URL返回了错误:404未找到”
lrkwz 2015年

1
是否可以通过这种方法安装特定的版本(例如3.0.1)?
bsferreira 2015年

我能够通过/etc/yum.repos.d/epel-apache-maven.repo回购文件中的此条目使其正常运行:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok 2015年

alternatives --config java
vikingsteve

61

为了将来的参考和简化起见,懒惰的人不需要太多的解释,而只是运行并使其尽快运行:

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-找不到不知道是否回购暂时关闭或永久关闭。
anon58192932 '02 -02-29

2
@advocate我刚刚创建了另一个服务器实例,并按照描述运行了确切的命令,并且像一个超级按钮一样工作。很抱歉收到您的延迟回复,但看起来它仍然有效。干杯。
亚历杭德罗(Alejandro Pablo Tkachuk),2016年

为什么用硬编码版本替换符号?
凯特

1
我猜@Kate是指$releasever
ᴠɪɴᴄᴇɴᴛ

3
这对我来说没有步骤2的工作,但即使我已经安装了1.8,它也想要isntall jdk 1.7
Adam

18
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

12

最近,我刚刚了解了一个名为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将其存储在新创建的etc / profile.d目录下作为maven.sh,其中包含以下内容

export M3_HOME=/opt/apache-maven-3.1.0
export M3=$M3_HOME/bin
export PATH=$M3:$PATH

opt目录中下载并解压缩最新的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

不太百胜,但离家近;)


我出于目的使用了Maven 3,但打包Maven v2一样容易。
quickshiftin

另外要注意的是,您必须注销/登录才能使用/etc/profile.d/maven.sh脚本。
quickshiftin

1
好的解决方案,谢谢。顺便说一句。您也可以键入exec bash(假设您正在使用bash)。
亚当·西缅


4

您需要与yum一起安装吗?还有很多其他可能性:

  • http://maven.apache.org/download.html获取二进制文件并将其放入您的/ usr / bn
  • 如果您使用的是Eclipse,则可以获取m2eclipse插件(http://m2eclipse.sonatype.org/),该插件捆绑了一个maven版本

1
是的,如果我找不到更好的方法,我将在接下来的15分钟内执行此操作。我犹豫的原因是,如果Yum 知道所安装的所有内容,那么它实际上是一个好产品。否则,不会那么多。我确信Maven也是很好的产品,可以执行不需要做的事情,使库版本保持最新。我倾向于将其用作构建系统,该任务比shell脚本要好一些,大约是Make的三分之一,大约是1989年。Grrr。
马尔沃里奥

好吧,如果他们只在jPackage存储库中维护了maven2直到2.0.7版本,那么您可以处理该版本,手动安装,也可以从maven.apache.org的源代码创建RPM并使用yum进行安装。 。但是您已经说过,您不想为此花费更多的时间,因此我认为选项1最适合您的情况
klaustopher 2011年

2
问题是与yum一起安装。
robermorales 2012年

7
这两个答案都不能回答问题。真正的答案应该是一些包含maven3(最新的稳定版)软件包的yum回购。
James Mills

1
/usr/bn还是/usr/bin?那其他目录/usr/local呢?
阿卜杜勒

3

自2014年中期以来,Maven就已为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

[...]

2
一个愚蠢的陷阱是,maven不是maven可执行文件,而是mvn...
JackLeo

3

这就是我在Amazon / AWS EMR v5上经历的。(改编自先前的答案),以拥有MavenJava8

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"

1
好吧,谢谢你的张贴。需要它的公司在2012年倒闭了,但我每年大约两次与创始人喝酒,所以我会提及您的帮助。:-)
马尔沃里奥'18

@Malvolio-大声笑,对不起(您仍然可以支持我的解决方案:))
jgp

1
该公司的倒闭是一个结果-我非常自豪地说,作为他们唯一的技术雇员-这完全是营销问题,而且技术基础结构的工作效果令人满意。
马尔沃里奥'18

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.