Maven générer un fichier pom

J'utilise maven 3.0.3 et j'ai essayé de générer pom pour jar tiers comme ceci:

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

Selon le lien ci-dessous, il devrait générer un pom approprié.xml et installer artefact dans le repo. http://maven.apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

Pendant ce temps, il renvoie un tel erreur:

[ERROR] l'objectif que vous avez spécifié nécessite l'exécution d'un projet N'y a pas de POM dans ce répertoire (D:cobra-0.98.4lib). Veuillez vérifier que vous invoqué Maven à partir du répertoire correct. -> [Aide 1]

Pourquoi demande-t-il pom.xml alors qu'il devrait générer pom.xml?

30
demandé sur firen 2011-07-15 13:05:24

7 réponses

C'est une vieille question, mais c'était un PITA sérieux pour moi pendant quelques minutes, alors j'ai pensé partager:

Je viens de rencontrer ce problème, et je crois que le problème dépend probablement de la plate-forme. Le vrai conseil était que la solution de la réponse de Cyril ne fonctionnait pas comme prévu: malgré ma spécification de -DgroupId=com.xyz et -DartifactId=whatever sur la ligne de commande et l'entrée correspondante dans le fichier POM, le jar a été installé dans le repo local sous com/whatever.

Cela m'a conduit à expérimenter avec citant des arguments de ligne de commande, et le résultat correct éventuel du formatage de la ligne de commande comme ceci (après la suppression du fichier POM):

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

Certaines citations sont sans doute redondantes, mais mieux vaut être sûr que Désolé, n'est-ce pas? Je cours Vista sur cet ordinateur, et je ne serais pas surpris si ce problème était spécifique à ce système D'exploitation version...by le chemin, ce fut avec Maven v3. 0. 4.

74
répondu Keith Layne 2012-06-26 02:02:44

Êtes-vous sûr que vous exécutez l'objectif install-file? J'ai vérifié votre commande et cela fonctionne pour moi, mais quand je place un install :install-file vide (peut-être que vous avez cette faute de frappe) le but install serait utilisé qui a besoin d'un pom.XML.

Essayez d'utiliser le -X paramètre pour obtenir plus d'informations de débogage:

 -X,--debug       Produce execution debug output

Mon système

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"

Installer Le Plugin

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
répondu FrVaBe 2011-07-18 08:44:14

J'ai trouvé une dérivation. Vous devez créer un pom simple.xml comme ceci :

<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>

Ce n'est pas parfait mais ça a marché pour moi. Si vous trouvez une meilleure façon de le faire, je suis intéressé.

MA configuration:

$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
...
3
répondu Cyril 2011-07-18 15:20:27

Essayez de l'exécuter sur cmd.exe ou excute commande cmd avant la commande mvn

1
répondu Sin2 2013-07-01 14:58:48

Allez simplement dans le répertoire de votre projet où vous pouvez trouver votre pom.fichier xml puis exécutez la même commande ! cela fonctionne pour moi;)

0
répondu Fakher 2015-02-19 09:36:15

Si vous rencontrez des problèmes avec la version en ligne de commande de Maven, vous pouvez essayer le plugin M2E pour eclipse. Il est beaucoup plus convivial pour les personnes sans beaucoup d'expérience avec Maven.

0
répondu Nathan Meyer 2016-04-12 02:05:35

Cela a fonctionné pour moi quand J'ai changé Powershell en Cygwin. Powershell analyse incorrectement l'argument de la ligne de commande.

0
répondu Matthew Molloy 2016-10-09 13:50:40