Comment installer manuellement un artefact dans Maven 2?

96

J'ai rencontré des erreurs lorsque j'ai essayé d'installer un artefact manuellement avec Maven 2. Je voulais installer un fichier jar à partir d'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 avec ma commande?

Liangzan
la source
Quel est le statut de cela? Votre question est-elle résolue?
Matt

Réponses:

147

Vous devez indiquer le groupId, l'artefactId 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
Romain Linsolas
la source
8
-Dpackaging = jar ou similaire est manquant
kaboom
@kaboom Non! Par défaut, l'emballage est jar, vous n'avez donc pas besoin de le spécifier dans la commande ...
Romain Linsolas
5
@romaintaz kaboom est correct; vous avez besoin de -Dpackaging = jar (ou quel que soit le type) sinon vous obtiendrez une erreur indiquant que "'packaging' est manquant."
Jack Edmonds
3
Il semble que le paramètre d'empaquetage soit nécessaire sauf si vous fournissez un fichier pom. Dans ce dernier cas, le type d'emballage est tiré du pom.
Romain Linsolas
1
Si vous utilisez PowerShell, assurez-vous d'utiliser quote de la même manière"-DgroupId=javax.transaction"
ankitjaininfo
38

Selon le Guide d'installation de JAR tiers de maven , la commande est:

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

Vous avez en effet besoin de l'option d'emballage. Cela répond à la question initiale.

Maintenant, dans votre contexte, vous vous battez avec un pot fourni par Sun. Vous devriez également lire la page Coping with Sun JARs . Là, vous apprendrez comment aider maven à vous fournir de meilleures informations sur l'emplacement des jars Sun et comment ajouter le référentiel Java.net Maven 2 qui 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>
Pascal Thivent
la source
13

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
BryanH
la source
J'ai eu beaucoup de problèmes pour installer un fichier jar manuellement, et il a continué à échouer jusqu'à ce que je l'ai tapé exactement de cette façon. Maintenant ça marche!
gregturn
4

Si vous rencontrez des erreurs similaires lors de l'utilisation de Windows PowerShell, vous devriez essayer la simple ligne de commande de Windows. Je n'ai pas découvert ce qui a causé cela, mais PowerShell semble interpréter certains des paramètres de Maven.

Koraktor
la source
Regardez la réponse de S. Bollweber ci-dessus. Et au moins TakeCommand exprime le même comportement.
Martin
1
Aucune raison de décliner ma réponse - S. Bollweber a répondu quelques mois après moi.
Koraktor
2

Toutes les réponses publiées en discutent à juste titre dans une perspective strictement maven. Mes problèmes étaient de faire cette installation pour maven en utilisant Netbeans comme mon IDE principal. J'ai trouvé l'article ci-dessous utile.

Crédit à l'article suivant du forum netbeans: http://forums.netbeans.org/topic22907.html

  1. Dans le projet Maven, ouvrez la boîte de dialogue "Ajouter une dépendance"
  2. Composez un groupId, un artifactId et une version et remplissez-les, OK.
  3. La dépendance sera ajoutée au pom.xml et apparaîtra sous le nœud "Bibliothèques" du projet maven
  4. Cliquez avec le bouton droit sur le nœud Lib et "Installer manuellement l'artefact", remplissez le chemin vers le fichier jar. Jar doit être installé sur le repo Maven local avec les coordonnées entrées à l'étape 2)
Paul
la source