Gibt es einen Paketmanager für Java wie easy_install für Python? [geschlossen]

73

Gibt es einen Paketmanager für Java wie easy_install für Python?
Ich suche nach einer Lösung, die über die Befehlszeile und nicht über eine IDE verwendet werden kann.

systempuntoout
quelle
2
Was bedeutet mit "Paketmanager"? Java-Bibliotheken werden nicht im Betriebssystem installiert, sondern nur mit Ihrem App-Klassenpfad gebündelt.
Igor Artamonov
9
Als Python-Typ, der Java zum ersten Mal unter professionellen Diktaten aufnimmt - ich wünschte. So etwas wie NPM wäre großartig.
DeaconDesperado
Wie Nuget für Visual Studio
Seyed Morteza Mousavi
2
Ich sehe dies nicht erwähnt, aber wenn Sie Ubuntu verwenden, sind die meisten der am häufigsten verwendeten Pakete verfügbar wie apt install mavenoderapt install gradle
Lime
3
Dies ist kein Thema zum Schließen, es ist eine gültige Frage für Python-Entwickler, die versuchen, JVM-Sprachen zu schreiben.
Jemshit Iskenderov

Antworten:

45

Maven bietet ein Abhängigkeitsmanagement basierend auf Remote- Repositorys (wie dem zentralen Repo ), die durchsucht und durchsucht werden können .

Maven Ant-Aufgaben (im Ruhestand) verwenden Mavens Repositorys, um das Abhängigkeitsmanagement und mehr für Ant-Builds bereitzustellen.

Ant Ivy ist eine weitere Alternative zu Maven Ant Tasks.

MOP ist ein weiteres Befehlszeilenprogramm, das das Repository und die Abhängigkeiten von Maven nutzt.

Pascal Thivent
quelle
MOP klingt interessant. Hast du es versucht?
Systempuntoout
@systempuntoout Versucht, ja. Wird regelmäßig verwendet, nein. Ich arbeite hauptsächlich mit serverseitigen Apps und mache fast alles mit Maven.
Pascal Thivent
@ Systempuntoout Maven 2, natürlich :)
Pascal Thivent
17

Edit 2017-04-27: Ich war enttäuscht über den Mangel an Vorwärtsdynamik für jpm4j und den Mangel an Community-zentrierter Entwicklung. Also habe ich ein neues Tool namens jrun erfunden . Ich lade alle ein, es auszuprobieren. Es hat einen engeren Umfang als Tools wie Pythons pip, aber Sie können Java-Code aus Remote-Maven-Repositorys auf benutzerfreundliche Weise ausführen.


Schauen Sie sich JPM4J an . Es ist ein Projekt von Peter Kriens (von BND Ruhm). Er hat es letztes Jahr zum ersten Mal vorgeschlagen , und zum Zeitpunkt dieses Schreibens gibt es es schon seit einigen Monaten und es sieht ziemlich beeindruckend aus.

Es wurde von Node's npm inspiriert und wie dieses Tool ist die Installation ein Kinderspiel:

OS X:

local   $ curl http://www.jpm4j.org/install/local  | sh
global  $ curl http://www.jpm4j.org/install/global | sudo sh

Linux:

curl http://www.jpm4j.org/install/script | sh

Und Windows hat natürlich ein klickendes Installationsprogramm.

Dann installieren Sie Dinge ähnlich wie andere Befehlszeilen-Paketmanager-Tools. Z.B:

jpm install org.codehaus.groovy:groovy-all

Der Installationsbefehl bearbeitet Maven-Koordinaten. Grundsätzlich benötigt die JAR nur einen JPM-CommandEintrag in ihrem Manifest und jpmweiß, wie ihre Hauptklasse als ausführbare Befehlszeilendatei verfügbar gemacht wird.

Persönlich würde ich wirklich gerne sehen, wie die Java-Community hinter einer solchen Anstrengung steckt. Ein wirklich solider Java-Paketmanager ist Jahre überfällig!

ctrueden
quelle
Wäre schön, wenn sie einen schokoladigen Installer hinzufügen würden
Jeff Martin
5
Ab heute ist die Website jpm4j.org nicht verfügbar .
Gary Sheppard
1
Ich habe meinen Beitrag mit Informationen zu einem neuen Projekt bearbeitet, das ich aufgerufen habe jrun.
ctrueden
Geht jrundavon aus, dass die Anwendung eine main()Methode hat?
Derek Mahar
@DerekMahar Sie können optional eine Hauptklasse als Teil eines jrunEndpunkts angeben . Wenn Sie die Hauptklasse weglassen, wird das Main-Classim JAR-Manifest des Artefakts definierte verwendet.
ctrueden