web-dev-qa-db-fra.com

maven générant un fichier pom

J'utilise maven 3.0.3 et j'ai essayé de générer du pom pour un pot tiers comme celui-ci:

mvn install: fichier-install -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.xml approprié et installer un artefact dans le référentiel. http://maven.Apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

Pendant ce temps, il renvoie une telle erreur:

[ERREUR] L'objectif que vous avez spécifié nécessite l'exécution d'un projet mais il n'y a pas de POM dans ce répertoire (D:\Cobra-0.98.4\lib). Veuillez vérifier que vous avez appelé Maven à partir du bon répertoire. -> [Aide 1]

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

30
firen

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 pense 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 pot a été installé dans le dépôt local sous com/whatever.

Cela m'a amené à expérimenter la citation d'arguments de ligne de commande et le résultat correct final 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"

Une partie de la citation est sans doute redondante, mais mieux vaut prévenir que guérir, non? Il se trouve que j'exécute Vista sur cet ordinateur et je ne serais pas surpris si ce problème était spécifique à cette version du système d'exploitation ... d'ailleurs, c'était avec Maven v3.0.4.

78
Keith Layne

Êtes-vous sûr d'exécuter le install-file objectif? J'ai vérifié votre commande et cela fonctionne pour moi, mais lorsque je place un _ install :install-file (peut-être que vous avez cette faute de frappe) l'objectif install serait utilisé, ce qui nécessite 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
FrVaBe

J'ai trouvé une dérivation. Vous devez créer un simple pom.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 config:

$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

essayez de l'exécuter sur cmd.exe ou exécutez la commande cmd avant la commande mvn

1
Sin2

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

0
Fakher

Cela a fonctionné pour moi lorsque j'ai changé Powershell en Cygwin. Powershell analyse de façon ou d'autre incorrecte l'argument de ligne de commande.

0
Matthew Molloy

Si vous rencontrez des problèmes avec la version en ligne de commande de Maven, vous voudrez peut-être essayer le plugin M2E pour Eclipse. Il est beaucoup plus convivial pour les personnes n'ayant pas beaucoup d'expérience avec Maven.

0
Nathan Meyer