Wie installiere ich Maven mit Yum?


135

Ich versuche nicht viel über Yum oder Maven zu lernen. Ich habe diesen Code geerbt und möchte nicht mehr Zeit als nötig in dieser Umgebung verbringen.

Ich habe lecker. Meine Installation "hat" ("ist auch angehängt"? "Weiß über"?) Zwei Repos: das Amazon-Repos und das JPackage, von denen ich verstehe, dass es so etwas wie ein Standard ist. (Eigentlich besteht jedes dieser Repositorys aus zwei Unter-Repositorys, aber ich glaube nicht, dass dies das Problem verursacht.)

Als ich yum bat, maven2 zu installieren, lehnte es ab und sagte, es habe noch nie von maven2 gehört.

Als ich yum gebeten habe, maven2 zu installieren, ohne Amazon zu beachten , tut es dies, aber es installiert Maven 2.0.9, das ziemlich alt ist. Die aktuelle pom.xml, die ich habe, erfordert eine höhere Version.

Wenn ich nach Maven-Repositorys google, erhalte ich Repositorys, mit denen Maven andere Dinge erstellen kann, und keine Repositorys, mit denen Yum Maven installieren kann. (Ich habe ein Repository gefunden, das Dinge enthält, mit denen Maven Yum erstellen kann. Ich glaube, Google verspottet mich an dieser Stelle.)

Ich brauche also nur die Repo- Datei , die auf ein Repo verweist, das alles enthält, was ich zur Installation von Maven 2.2.1 benötige.

Ohne all diese arbeitssparenden Geräte könnte ich wahrscheinlich etwas Arbeit erledigen.

Antworten:


215

Ikarus beantwortete eine sehr ähnliche Frage für mich. Es wird nicht "yum" verwendet, sollte aber dennoch für Ihre Zwecke funktionieren. Versuchen,

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

Im Grunde gehen Sie einfach zur Maven-Site . Finden Sie die gewünschte Version von maven. Geben Sie den Dateityp ein und verwenden Sie den Spiegel für die obige wget-Anweisung.

Danach ist der Vorgang einfach

  1. Führen Sie den Befehl wget aus dem Verzeichnis aus, in das Sie auch maven extrahieren möchten.
  2. Führen Sie die folgenden Schritte aus, um den Teer zu extrahieren:

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. Verschiebe den Maven nach / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Fügen Sie als Nächstes die env-Variablen zu Ihrer ~ / .bashrc-Datei hinzu

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
    
  5. Führen Sie diese Befehle aus

    Quelle ~ / .bashrc

6:. Überprüfen Sie mit dem folgenden Befehl, ob alles funktioniert

    mvn -version

1
Vielen Dank! Der beste Maven, über den ich kommen konnte, jpackagewar der, maven.noarchtbdder war v1.1oder maven2der war v2.0.4... Ihre alternativen Anweisungen haben mir sehr geholfen, mich zum Maven v3 zu bringen :)
pulkitsinghal

53
Diese Anweisungen funktionieren. Aber warum, oh, warum können sie Maven nicht einfach mit allen anderen Paketen in das Paket-Repository stellen, damit die Leute nicht durch diese Reifen springen müssen?
8.

3
@aroth wahrscheinlich, weil es diejenigen gibt, die Maven Anathema
Joseph Lust

1
Ersetzen Sie einfach den Pfad, den Sie passieren, wgetdurch einen, den Sie von maven.apache.org/download.cgi
Ali

@Ali Bietet Apache eine Möglichkeit, den Domänennamen anstelle des Spiegeldomänennamens zu verwenden?
Blong

115

Sie können den Yum-Bibliotheken wie folgt Maven hinzufügen:

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

Jetzt Sie können wie folgt maven installieren:

yum install apache-maven

Sobald dies erledigt ist, wird Maven 3 installiert und mvn -versionzeigt Ihnen, welche Version Sie haben - ich hatte 3.2.1.

Dies funktionierte unter einer Ausnahme perfekt für mich unter CentOS 6. Es installierte OpenJDK 1.6 und machte es zur Standard-Java-Version, obwohl ich JDK 8 bereits manuell installiert hatte (möglicherweise, weil ich es manuell installiert hatte). Um es wieder zu ändern, verwenden Sie alternatives:

alternatives --config java
alternatives --config javac

und wählen Sie die richtige Version.


8
Wie in diesem Forum beschrieben , muss epel-$releaseverdie heruntergeladene .repoDatei durch ersetzt werden epel-6, sonst yum install apache-maven
ODER Mapper

Selbst das Ersetzen von epel- $ releasever durch epel-6 schlägt mit 404 fehl: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "Die angeforderte URL hat einen Fehler zurückgegeben : 404 Nicht gefunden "
lrkwz

1
ist es möglich, eine bestimmte (zB 3.0.1) Version mit diesem Ansatz zu installieren?
Bsferreira

Ich konnte es mit diesem Eintrag in der /etc/yum.repos.d/epel-apache-maven.repoRepo-Datei zum baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
Laufen bringen

alternatives --config java
Wikingersteve

61

Zum späteren Nachschlagen und der Einfachheit halber für die faulen Leute da draußen, die nicht viele Erklärungen wollen, sondern nur Dinge ausführen und es so schnell wie möglich zum Laufen bringen:

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

Ich hoffe, Ihnen hat diese Copy & Paste-Sitzung gefallen.


Dies klang, als würde es perfekt funktionieren, außer dass dieser Fehler aufgetreten ist : repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Errno 14] HTTPS-Fehler 404 - Nicht gefunden Weiß nicht, ob der Repo ist vorübergehend oder dauerhaft ausgefallen.
anon58192932

2
@advocate Ich habe gerade eine andere Serverinstanz erstellt und die genauen Befehle wie beschrieben ausgeführt und wie ein Zauber gearbeitet. Entschuldigung für die späte Antwort, aber es sieht so aus, als ob es immer noch funktioniert. Prost.
Alejandro Pablo Tkachuk

Warum sollten Sie das Symbol durch eine fest codierte Version ersetzen?
Kate

1
Ich denke @Kate bedeutet $releasever.
13.

3
Dies funktionierte für mich ohne Schritt 2, aber es möchte nicht JDK 1.7 installieren, obwohl ich bereits eine 1.8 installiert habe
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

Für JVM-Entwickler ist dies ein SDK-Manager für alle Tools, die Sie benötigen.

https://sdkman.io/

Installieren Sie sdkman:

yum install -y zip unzip

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

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

Maven installieren:

sdk install maven

12

Ich habe kürzlich von einem praktischen Verpackungswerkzeug namens fpm erfahren . Als ich über diese Frage stolperte, dachte ich, ich könnte es versuchen. Es stellt sich heraus, dass es nach dem Lesen der Antwort von @ OrwellHindenberg einfach ist, maven mit fpm in eine Drehzahl zu packen.

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

Erstellen Sie ein Projektverzeichnis und gestalten Sie die Verzeichnisstruktur des Pakets

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

Erstellen Sie eine Datei, in die wir installieren, /etc/profile.d/maven.shund speichern Sie diese im neu erstellten Verzeichnis etc / profile.d als maven.sh mit dem folgenden Inhalt

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

Laden Sie den neuesten Maven im opt- Verzeichnis herunter und entpacken Sie ihn

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

Schließlich bauen Sie die Drehzahl

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

Jetzt können Sie maven durch U / min installieren

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

und Bratsche

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

nicht ganz lecker aber näher zu hause;)


Ich habe mich für meine Zwecke für Maven 3 entschieden, aber Maven v2 ist genauso einfach zu verpacken.
Quickshiftin

Ein weiterer Hinweis: Sie müssen sich abmelden / anmelden, damit das Skript /etc/profile.d/maven.sh ausgeführt werden kann .
Schnellschaltung

1
Gute Lösung, danke. Übrigens. Sie können auch eingeben exec bash(vorausgesetzt, Sie verwenden Bash).
Adam Siemion

9

Für diejenigen unter Ihnen, die nach einer Möglichkeit suchen, Maven 2018 zu installieren:

$ sudo yum install maven

wird heutzutage unterstützt.


Funktioniert für mich unter Amazon Linux 2 (März 2019).
Ccleve

4

Müssen Sie es mit yum installieren? Es gibt viele andere Möglichkeiten:

  • Holen Sie sich die Binärdatei von http://maven.apache.org/download.html und legen Sie sie in Ihrem / usr / bn ab
  • Wenn Sie Eclipse verwenden, können Sie das m2eclipse-Plugin (http://m2eclipse.sonatype.org/) herunterladen, das eine Version von maven bündelt

1
Ja, ich werde das in den nächsten 15 Minuten tun, wenn ich keinen besseren Weg finden kann. Der Grund, warum ich zögere, ist, dass Yum tatsächlich ein gutes Produkt ist, wenn es über alles Bescheid weiß, was installiert ist . Ansonsten nicht so sehr. Ich bin mir sicher, dass Maven auch ein gutes Produkt ist, wenn es darum geht, etwas zu tun, was ich nicht tun muss, und die Bibliotheksversionen auf dem neuesten Stand zu halten. Das System, das ich tendenziell benutze, verwendet es als Build-System, eine Aufgabe, die etwas besser ist als ein Shell-Skript und ungefähr ein Drittel so gut wie Make, circa 1989. Grrr.
Malvolio

Wenn sie nur maven2 bis Version 2.0.7 im jPackage-Repository beibehalten haben, können Sie entweder mit dieser Version umgehen, sie manuell installieren oder aus den Quellen unter maven.apache.org ein RPM erstellen und dieses mit yum installieren . Aber Sie haben bereits erklärt, dass Sie nicht mehr Zeit als nötig damit verbringen möchten, daher denke ich, dass Option 1 am besten zu Ihrer Situation
passt

2
Frage ist über die Installation mit yum.
Robermorales

7
Beide Antworten beantworten die Frage nicht. Die eigentliche Antwort sollte sich auf ein Yum Repo beziehen, das die maven3-Pakete (neueste stabile?) Enthält.
James Mills

1
/usr/bnoder /usr/bin? Was ist mit anderen Verzeichnissen wie /usr/local?
Abdull

3

Maven ist seit Mitte 2014 für Fedora verpackt, daher ist es jetzt ziemlich einfach. Schreib einfach

sudo dnf install maven

Testen Sie nun die Installation, führen Sie maven einfach in einem zufälligen Verzeichnis aus

mvn

Und es wird fehlschlagen, weil Sie kein Ziel angegeben haben, z 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
Ein albernes Problem ist, dass Maven nicht mavenausführbar ist, sondern mvn...
JackLeo

3

Dies habe ich in Amazon / AWS EMR v5 durchgemacht. (Angepasst an die vorherigen Antworten), um Maven und Java8 zu haben .

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

Wählen Sie Java8

sudo alternatives --config javac

Wählen Sie Java8

Nun, wenn Sie laufen:

mvn -version

Du solltest bekommen:

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
Nun, danke, dass du das gepostet hast. Die Firma, die es brauchte, ging 2012 aus dem Geschäft, aber ich trinke ungefähr zweimal im Jahr mit den Gründern, deshalb werde ich Ihre Hilfe erwähnen. :-)
Malvolio

@ Malvolio - lol und sorry (Sie können meine Lösung immer noch positiv bewerten :))
jgp

1
Der Niedergang des Unternehmens war - und ich sage dies mit großem Stolz als einziger technischer Mitarbeiter - ausschließlich auf Marketingprobleme zurückzuführen, und die technische Infrastruktur funktionierte so gut wie erwartet.
Malvolio

1

Nicht nur mvn, für jeden Nutzen, können Sie sich selbst herausfinden, indem Sie gebenyum whatprovides {command_name}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.