Làm cách nào để cài đặt Maven với Yum?


135

Tôi đang cố gắng không tìm hiểu nhiều về yum hoặc maven. Tôi đã thừa hưởng mã này và tôi không muốn mất nhiều thời gian hơn trong môi trường này.

Tôi đã có yum. Cài đặt của tôi "có" ("được đính kèm quá"? "Biết về"?) Hai repos: Amazon một và JPackage, mà tôi hiểu là một cái gì đó của một tiêu chuẩn. (Trên thực tế, mỗi kho lưu trữ đó bao gồm hai kho lưu trữ phụ, nhưng tôi không nghĩ rằng điều đó gây ra vấn đề.)

Khi tôi yêu cầu yum cài đặt maven2, nó đã từ chối, nói rằng nó chưa bao giờ nghe nói về maven2.

Khi tôi yêu cầu yum cài đặt maven2 bỏ qua Amazon , nó sẽ làm như vậy, nhưng nó cài đặt Maven 2.0.9, khá cũ. Pom.xml thực tế tôi có yêu cầu phiên bản cao hơn.

Khi tôi Google kho lưu trữ Maven, tôi nhận được kho lưu trữ mà Maven có thể sử dụng để xây dựng những thứ khác, không phải kho lưu trữ mà Yum có thể sử dụng để cài đặt Maven. (Tôi đã tìm thấy một kho chứa thứ cho phép Maven xây dựng Yum. Tôi nghĩ rằng Google đang chế giễu tôi vào thời điểm này.)

Vì vậy, tất cả những gì tôi cần là tệp repo trỏ đến một repo có chứa bất cứ thứ gì tôi cần để cài đặt Maven 2.2.1.

Nếu nó không dành cho tất cả các thiết bị tiết kiệm lao động này, tôi có thể hoàn thành công việc.

Câu trả lời:


215

Icarus trả lời một câu hỏi rất giống tôi. Nó không sử dụng "yum", nhưng vẫn hoạt động cho mục đích của bạn. Thử,

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

về cơ bản chỉ cần đi đến trang web maven . Tìm phiên bản của maven bạn muốn. Loại tệp và sử dụng máy nhân bản cho câu lệnh wget ở trên.

Sau đó, quá trình này là dễ dàng

  1. Chạy lệnh wget từ thư mục bạn muốn giải nén maven.
  2. chạy sau đây để giải nén tar,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. di chuyển maven đến / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Tiếp theo thêm các biến env vào tệp ~ / .bashrc của bạn

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
  5. Thực hiện các lệnh này

    nguồn ~ / .bashrc

6 :. Xác nhận mọi thứ đang hoạt động với lệnh sau

    mvn -version

1
Cảm ơn! tốt nhất maven tôi có thể nhận được thông qua jpackagemaven.noarchtbdđó là v1.1hay maven2đó là v2.0.4... hướng dẫn thay thế của bạn đã giúp rất nhiều để có được tôi để maven v3 :)
pulkitsinghal

53
Các hướng dẫn làm việc. Nhưng tại sao oh tại sao họ không thể đặt maven vào kho lưu trữ gói với tất cả các gói khác để mọi người không phải nhảy qua những cái vòng này?
aroth

3
@aroth có lẽ bởi vì có những người coi Maven anathema
Joseph Lust

1
chỉ cần thay thế con đường bạn đi qua wgetbằng con đường bạn nhận được từ maven.apache.org/doad.cgi
Ali

@Ali Apache có cung cấp cách sử dụng tên miền của họ thay vì tên miền phản chiếu không?
blong

115

Bạn có thể thêm maven vào các thư viện yum như thế này:

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

Bây giờ bạn có thể cài đặt maven như thế này:

yum install apache-maven

Sau khi hoàn thành, maven 3 sẽ được cài đặt và mvn -version sẽ cho bạn biết phiên bản nào bạn đã có - Tôi đã có 3.2.1.

Điều này làm việc hoàn hảo cho tôi trên CentOS 6 với một ngoại lệ. Nó đã cài đặt OpenJDK 1.6 và biến nó thành phiên bản Java mặc định, mặc dù tôi đã cài đặt thủ công JDK 8 (có thể tôi đã cài đặt thủ công). Để thay đổi lại, sử dụng alternatives:

alternatives --config java
alternatives --config javac

và chọn phiên bản chính xác.


8
Như được mô tả trong diễn đàn này , epel-$releasevertrong .repotệp đã tải xuống cần được thay thế bằng epel-6, nếu yum install apache-mavenkhông sẽ không thành công với lỗi 404.
HOẶC Mapper

Ngay cả việc thay thế epel- $ phát hành bằng epel-6 cũng không thành công với 404: repos.fedorap People.org/repose/dchen/apache-maven/epel-6/i386/ .: [Errno 14] PYCURL ERROR 22 - "URL được yêu cầu trả về : 404 Không tìm thấy "
lrkwz 10/03/2015

1
Có thể cài đặt phiên bản cụ thể (ví dụ 3.0.1) với phương pháp này không?
bsferreira

Tôi đã có thể làm cho nó hoạt động tốt với mục này trong /etc/yum.repos.d/epel-apache-maven.repotệp repo:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok

alternatives --config java
vikingsteve

61

Để tham khảo trong tương lai và vì đơn giản cho những người lười biếng ngoài kia không muốn giải thích nhiều mà chỉ chạy mọi thứ và làm cho nó hoạt động càng sớm càng tốt:

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

Hy vọng bạn thích phiên bản sao chép và dán này.


Điều này nghe có vẻ như sẽ hoạt động hoàn hảo ngoại trừ nhận được lỗi này: repos.fedorap People.org/repose/dchen/apache-maven/epel-6/x86_64/ .: [Errno 14] Lỗi HTTPS 404 - Không tìm thấy Đừng biết nếu repo tạm thời xuống hoặc xuống vĩnh viễn.
anon58192932

2
@advocate Tôi vừa tạo một cá thể máy chủ khác và chạy các lệnh chính xác như được mô tả và hoạt động như một bùa mê. xin lỗi vì đã trả lời trễ, nhưng có vẻ như nó vẫn hoạt động. chúc mừng
Alejandro Pablo Tkachuk

Tại sao bạn lại thay thế biểu tượng bằng phiên bản mã hóa cứng?
Kate

1
Tôi đoán @Kate có nghĩa là $releasever.
ᴠɪɴᴄᴇɴᴛ

3
Điều này làm việc cho tôi mà không cần bước 2, nhưng nó không muốn jdk 1.7 mặc dù tôi đã cài đặt 1.8
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

đối với nhà phát triển JVM, đây là trình quản lý SDK cho tất cả các công cụ bạn cần.

https://sdkman.io/

Cài đặt sdkman:

yum install -y zip unzip

curl -s "https://get.sdkman.io" | bash

source "$HOME/.sdkman/bin/sdkman-init.sh"

Cài đặt Maven:

sdk install maven

12

Tôi mới biết về một công cụ đóng gói tiện dụng có tên là fpm gần đây. Việc vấp phải câu hỏi này tôi nghĩ tôi có thể thử. Hóa ra, sau khi đọc câu trả lời của @ OrwellHindenberg, thật dễ dàng để gói maven thành một RPM với fpm.

yum install -y gcc make rpm-build ruby-devel rubygems
gem install fpm

tạo một thư mục dự án và bố trí cấu trúc thư mục của gói

mkdir maven-build
cd maven-build
mkdir -p etc/profile.d opt

tạo một tệp mà chúng tôi sẽ cài đặt /etc/profile.d/maven.sh, chúng tôi sẽ lưu trữ tệp này trong thư mục etc / profile.d mới được tạo dưới dạng maven.sh , với các nội dung sau

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

tải xuống và giải nén maven mới nhất trong thư mục opt

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

cuối cùng, xây dựng RPM

fpm -n maven-3.1.0 -s dir -t rpm etc opt

Bây giờ bạn có thể cài đặt maven thông qua vòng / phút

$ rpm -Uvh maven-3.1.0-1.0-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:maven-3.1.0            ########################################### [100%]

và viola

$ which mvn
/opt/apache-maven-3.1.0/bin/mvn

không hoàn toàn yum nhưng gần nhà hơn;)


Tôi đã đi với maven 3 cho mục đích của mình, nhưng cũng dễ dàng để gói maven v2.
quickshiftin

Một lưu ý khác, bạn sẽ phải đăng xuất / đăng nhập cho tập lệnh /etc/profile.d/maven.sh để thực hiện.
quickshiftin

1
Giải pháp tốt đẹp, cảm ơn. BTW. Bạn cũng có thể gõ exec bash(giả sử bạn đang sử dụng bash).
Adam Siemion

9

Đối với những bạn đang tìm cách cài đặt Maven vào năm 2018:

$ sudo yum install maven

được hỗ trợ những ngày này.


Hoạt động với tôi trên Amazon Linux 2 (tháng 3 năm 2019).
ccleve

4

Bạn có cần phải cài đặt nó với yum? Có rất nhiều khả năng khác:

  • Lấy nhị phân từ http://maven.apache.org/doad.html và đặt nó vào / usr / bn của bạn
  • Nếu bạn đang sử dụng Eclipse, bạn có thể nhận được plugin m2eclipse (http://m2eclipse.sonatype.org/) gói một phiên bản của maven

1
Vâng, tôi sẽ làm điều đó trong khoảng 15 phút tới nếu tôi không thể tìm ra cách nào tốt hơn. Lý do tôi do dự là Yum thực sự là một sản phẩm tốt nếu nó biết về mọi thứ được cài đặt . Nếu không, không quá nhiều. Tôi chắc chắn Maven cũng là một sản phẩm tốt, khi làm điều gì đó tôi không cần làm, luôn cập nhật các phiên bản thư viện. Hệ thống tôi đang có xu hướng sử dụng nó như một hệ thống xây dựng, một nhiệm vụ tốt hơn một chút so với kịch bản shell và khoảng một phần ba tốt như Make, vào khoảng năm 1989. Grrr.
Malvolio

Chà, nếu họ chỉ duy trì maven2 cho đến phiên bản 2.0.7 trong kho jPackage, thì bạn có thể xử lý phiên bản đó, cài đặt bằng tay hoặc bạn có thể tạo RPM từ các nguồn tại maven.apache.org và cài đặt nó với yum . Nhưng bạn đã tuyên bố rằng bạn không muốn dành nhiều thời gian hơn khi cần thiết với điều này, vì vậy tôi nghĩ rằng tùy chọn 1 sẽ phù hợp với tình huống của bạn nhất
klaustopher

2
Câu hỏi là về việc cài đặt nó với yum.
robermorales

7
Cả hai câu trả lời này đều không trả lời được câu hỏi. Câu trả lời thực sự là về một số repo yum có sẵn có chứa các gói maven3 (ổn định mới nhất?).
James Mills

1
/usr/bnhay /usr/bin? Những thư mục khác như /usr/localgì?
Abdull

3

Maven được đóng gói cho Fedora từ giữa năm 2014, vì vậy bây giờ khá dễ dàng. Chỉ loại

sudo dnf install maven

Bây giờ hãy kiểm tra cài đặt, chỉ cần chạy maven trong một thư mục ngẫu nhiên

mvn

Và nó sẽ thất bại, vì bạn không chỉ định mục tiêu, vd 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
một vấn đề ngớ ngẩn là maven không thể maventhực thi được mà là mvn...
JackLeo

3

Đây là những gì tôi đã trải qua trên Amazon / AWS EMR v5. (Chuyển thể từ các câu trả lời trước), để có 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

chọn Java8

sudo alternatives --config javac

chọn Java8

Bây giờ, nếu bạn chạy:

mvn -version

Bạn sẽ nhận được:

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
Vâng, cảm ơn vì đã đăng nó. Công ty cần nó đã ngừng hoạt động vào năm 2012, nhưng tôi có đồ uống với những người sáng lập khoảng hai lần một năm, vì vậy tôi sẽ đề cập đến sự giúp đỡ của bạn. :-)
Malvolio

@Malvolio - lol và xin lỗi (bạn vẫn có thể nâng cao giải pháp của tôi :))
jgp 26/07/18

1
Sự sụp đổ của công ty là kết quả - và tôi nói điều này với niềm tự hào đáng kể, vì nhân viên kỹ thuật duy nhất của họ - chỉ có vấn đề về tiếp thị, và cơ sở hạ tầng kỹ thuật hoạt động tốt như mong đợi.
Malvolio

1

Không chỉ mvn, đối với bất kỳ lợi ích, bạn có thể tìm ra chính mình bằng cách choyum whatprovides {command_name}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.