web-dev-qa-db-de.com

Maven erzeugen POM-Datei

Ich benutze Maven 3.0.3 und habe versucht, POM für Drittanbieter-JAR wie folgt zu generieren:

mvn install: install-file -Dfile = Cobra.jar -DgroupId = com.Cobra -DartifactId = Cobra -Dversion = 0.98.4 -Dpackaging = jar -DgeneratePom = true

Laut Link unten sollte es die richtige pom.xml generieren und das Artefakt im Repo installieren. http://maven.Apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

In der Zwischenzeit wird ein solcher Fehler zurückgegeben:

[FEHLER] Für das angegebene Ziel muss ein Projekt ausgeführt werden, in diesem Verzeichnis befindet sich jedoch kein POM (D:\Cobra-0.98.4\lib). Bitte überprüfen Sie, ob Sie Maven aus dem richtigen Verzeichnis aufgerufen haben. -> [Hilfe 1]

Warum wird nach pom.xml gefragt, während pom.xml generiert werden soll?

30
firen

Dies ist eine alte Frage, war aber für ein paar Minuten eine ernste PITA für mich, und ich dachte, ich würde Folgendes mitteilen:

Ich bin gerade auf dieses Problem gestoßen, und ich glaube, dass das Problem wahrscheinlich plattformabhängig ist. Der eigentliche Hinweis war, dass die Lösung aus Cyrils Antwort nicht wie erwartet funktionierte: Trotz meiner Angabe von -DgroupId=com.xyz Und -DartifactId=whatever In der Befehlszeile und des entsprechenden Eintrags in der POM-Datei das jar wurde im lokalen repo unter com/whatever installiert.

Dies veranlasste mich, mit Anführungszeichen für Befehlszeilenargumente und dem letztendlich korrekten Ergebnis der Formatierung der Befehlszeile wie folgt zu experimentieren (nach dem Löschen der POM-Datei):

mvn install:install-file "-Dfile=Cobra.jar" "-DgroupId=com.Cobra" "-DartifactId=Cobra" "-Dversion=0.98.4" "-Dpackaging=jar" "-DgeneratePom=true"

Einige der Zitate sind zweifellos überflüssig, aber sicherer als traurig, oder? Ich habe zufällig Vista auf diesem Computer ausgeführt und wäre nicht überrascht, wenn dieses Problem für diese Betriebssystemversion spezifisch wäre ... übrigens, dies war mit Maven v3.0.4.

78
Keith Layne

Sind Sie sicher, dass Sie das Ziel install-file Ausführen? Ich habe Ihren Befehl überprüft und er funktioniert für mich, aber wenn ich ein Leerzeichen install :install-file (Vielleicht haben Sie diesen Tippfehler) einsetze, wird das Ziel install verwendet, das eine pom.xml benötigt.

Versuchen Sie, den Parameter -X Zu verwenden, um weitere Debug-Informationen zu erhalten:

 -X,--debug       Produce execution debug output

Mein System

Maven

c:\>mvn -version

Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: C:\progs\Apache-maven-3.0.3
Java version: 1.6.0_21, vendor: Sun Microsystems Inc.
Java home: c:\Program Files (x86)\Java\jdk1.6.0_21\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", Arch: "x86", family: "windows"

Plugin installieren

c:\>mvn -Dplugin=install help:describe

Name: Maven Install Plugin
Description: Copies the project artifacts to the user's local repository.
Group Id: org.Apache.maven.plugins
Artifact Id: maven-install-plugin
Version: 2.3.1
Goal Prefix: install

This plugin has 3 goals:

install:help
  Description: Display help information on maven-install-plugin.
    Call
      mvn install:help -Ddetail=true -Dgoal=<goal-name>
    to display parameter details.

install:install
  Description: Installs the project's main artifact in the local repository.

install:install-file
  Description: Installs a file in the local repository.

For more information, run 'mvn help:describe [...] -Ddetail'
8
FrVaBe

Ich habe eine Umgehungsstraße gefunden. Sie müssen eine einfache pom.xml wie folgt erstellen:

<project xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.Cobra</groupId>
    <artifactId>Cobra</artifactId>
    <version>0.98.4</version>
</project>

Es ist nicht perfekt, aber es hat für mich funktioniert. Wenn Sie einen besseren Weg dazu finden, bin ich interessiert.

Meine Konfiguration:

$mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: /usr/local/maven
Java version: 1.6.0_20, vendor: Sun Microsystems Inc.
Java home: /usr/local/jdk1.6.0_20/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-25-generic-pae", Arch: "i386", family: "unix"

$mvn -Dplugin=install help:describe
...
Name: Maven Install Plugin
Description: Copies the project artifacts to the user's local repository.
Group Id: org.Apache.maven.plugins
Artifact Id: maven-install-plugin
Version: 2.3.1
Goal Prefix: install
...
4
Cyril

versuchen Sie, es auf cmd.exe auszuführen, oder führen Sie den Befehl cmd vor dem Befehl mvn aus

1
Sin2

gehen Sie einfach in Ihr Projektverzeichnis, wo Sie Ihre pom.xml-Datei finden, und führen Sie den gleichen Befehl aus! Für mich geht das ;)

0
Fakher

Bei mir hat es funktioniert, als ich Powershell in Cygwin geändert habe. Powershell analysiert das Befehlszeilenargument irgendwie falsch.

0
Matthew Molloy

Wenn Sie Probleme mit der Befehlszeilenversion von Maven haben, sollten Sie das M2E-Plugin für Eclipse ausprobieren. Es ist weitaus benutzerfreundlicher für Leute ohne viel Erfahrung mit Maven.

0
Nathan Meyer