Wie installiere ich ein Artefakt manuell in Maven 2?

96

Beim Versuch, ein Artefakt manuell mit Maven 2 zu installieren, sind einige Fehler aufgetreten. Ich wollte mit dem Befehl ein JAR aus einem lokalen Verzeichnis installieren

mvn install:install-file -Dfile=jta-1.0.1B.jar

Aber Maven gab einen Build-Fehler, der wie folgt lautet:

Invalid task '.01B.jar': you must
specify a valid lifecycle phase, or a
goal in the format plugin:goal or
pluginGroupId:pluginArtifactId:pluginVersion:goal

Gibt es einen Fehler mit meinem Befehl?

Liangzan
quelle
Wie ist der Status davon? Ist Ihre Frage gelöst?
Matt

Antworten:

147

Sie müssen die Gruppen-ID, die Artefakt-ID und die Version für Ihr Artefakt angeben:

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dpackaging=jar \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true
Romain Linsolas
quelle
8
-Dpackaging = Glas oder ähnliches fehlt
Kaboom
@ Kaboom Nein! Standardmäßig ist die Verpackung jar, so dass Sie dies nicht im Befehl angeben müssen ...
Romain Linsolas
5
@romaintaz kaboom ist korrekt; Sie benötigen -Dpackaging = jar (oder was auch immer der Typ ist), sonst erhalten Sie eine Fehlermeldung über "'Verpackung' fehlt."
Jack Edmonds
3
Es scheint, dass der Verpackungsparameter benötigt wird, außer wenn Sie eine POM-Datei bereitstellen. Im letzteren Fall wird der Pakettyp dem POM entnommen.
Romain Linsolas
1
Wenn Sie PowerShell verwenden, stellen Sie sicher, dass Sie ebenfalls Zitat verwenden"-DgroupId=javax.transaction"
ankitjaininfo
38

Laut Mavens Handbuch zur Installation von JARs von Drittanbietern lautet der Befehl:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Sie benötigen in der Tat die Verpackungsoption. Dies beantwortet die ursprüngliche Frage.

In Ihrem Kontext kämpfen Sie jetzt mit einem von Sun bereitgestellten Glas. Sie sollten auch die Seite Coping with Sun JARs lesen . Dort erfahren Sie , wie Sie Hilfe Maven Sie Gläser Lage bessere Informationen über Sun bieten und wie Java.net hinzufügen Maven 2 - Repository , die enthält jta-1.0.1B.jar . Fügen Sie dies in Ihrem settings.xml(nicht tragbaren) oder pom.xml (tragbaren) hinzu:

  <repositories>
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </repository>
  </repositories>
Pascal Thivent
quelle
13

Ich musste Verpackung hinzufügen, also:

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true \
  -Dpackaging=jar
BryanH
quelle
Ich hatte viele Probleme, eine JAR-Datei manuell zu installieren, und sie schlug immer wieder fehl, bis ich sie genau so tippte. Jetzt gehts!
Gregturn
4

Wenn bei der Verwendung von Windows PowerShell jemals ähnliche Fehler auftreten, sollten Sie die einfache Befehlszeile von Windows verwenden. Ich habe nicht herausgefunden, was dies verursacht hat, aber PowerShell scheint einige von Mavens Parametern zu interpretieren.

Koraktor
quelle
Schauen Sie sich die Antwort von S. Bollweber oben an. Und zumindest drückt TakeCommand das gleiche Verhalten aus.
Martin
1
Kein Grund, meine Antwort abzulehnen - S. Bollweber antwortete einige Monate nach mir.
Koraktor
2

In allen veröffentlichten Antworten wird dies zu Recht aus einer streng einfachen Perspektive erörtert. Meine Probleme bestanden darin, diese Installation für Maven mit Netbeans als primärer IDE durchzuführen. Ich fand den folgenden Artikel hilfreich.

Gutschrift auf den folgenden Artikel im Netbeans-Forum: http://forums.netbeans.org/topic22907.html

  1. Öffnen Sie im Maven-Projekt das Dialogfeld "Abhängigkeit hinzufügen"
  2. Erstelle eine Gruppen-ID, eine Artefakt-ID und eine Version und fülle sie aus, OK.
  3. Die Abhängigkeit wird der Datei pom.xml hinzugefügt und unter dem Knoten "Bibliotheken" des Maven-Projekts angezeigt
  4. Klicken Sie mit der rechten Maustaste auf den Lib-Knoten und "Artefakt manuell installieren", und füllen Sie den Pfad zum JAR aus. Das Glas sollte auf dem lokalen Maven-Repo mit den in Schritt 2) eingegebenen Koordinaten installiert werden.
Paul
quelle