99 votes

Comment installer manuellement un artefact dans Maven 2 ?

J'ai rencontré des erreurs lorsque j'ai essayé d'installer un artefact manuellement avec Maven 2. Je voulais installer un jar depuis un répertoire local avec la commande

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

Mais Maven a donné une erreur de construction qui se lit comme suit :

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

Y a-t-il une erreur dans ma commande ?

0 votes

Qu'en est-il ? Votre question est-elle résolue ?

155voto

romaintaz Points 32120

Vous devez indiquer le groupId, l'artifactId et la version de votre artefact :

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dpackaging=jar \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true

8 votes

-Dpackaging=jar ou similaire est manquant

0 votes

@kaboom Non ! Par défaut, le packaging est jar, donc vous n'avez pas besoin de le spécifier dans la commande...

0 votes

Ne fonctionne pas pour moi non plus : Informations manquantes sur le groupe, l'artefact, la version ou l'emballage.

39voto

Pascal Thivent Points 295221

D'après les règles de maven Guide d'installation des JARs de tierces parties la commande est :

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

Vous devez en effet choisir l'option d'emballage. Cela répond à la question initiale.

Maintenant, dans votre contexte, vous vous battez avec un bocal fourni par Sun. Vous devriez lire le Faire face aux JARs de Sun également. Vous y apprendrez comment aider maven à vous fournir de meilleures informations sur l'emplacement des bocaux Sun et comment ajouter Java.net à votre liste de bocaux. Dépôt Maven 2 dont contient jta-1.0.1B.jar . Ajoutez ceci dans votre settings.xml (non portable) ou pom.xml (portable) :

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

16voto

J'ai dû ajouter un emballage, donc :

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true \
  -Dpackaging=jar

8voto

S. Bollweber Points 61

La réponse est de s'échapper du tableau de bord !

http://www.mail-archive.com/users@maven.apache.org/msg83991.html

0 votes

Bon sang, c'est tout. Tous les paramètres -D doivent être entourés de `.

4voto

Koraktor Points 9532

Si vous rencontrez des erreurs similaires lorsque vous utilisez Windows PowerShell, vous devriez essayer la ligne de commande simple de Windows. Je n'ai pas trouvé la cause de ce problème, mais PowerShell semble interpréter certains des paramètres de Maven.

0 votes

Regardez la réponse de S. Bollweber ci-dessus. Et au moins TakeCommand exprime le même comportement.

1 votes

Aucune raison de décoter ma réponse - S. Bollweber a répondu quelques mois après moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X