web-dev-qa-db-fra.com

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

93
liangzan

Vous devez indiquer le groupId, le 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
144
Romain Linsolas

Selon maven's Guide pour l'installation de fichiers JAR tiers , la commande est la suivante:

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 Faire face à Sun JAR . Vous y apprendrez comment aider maven à vous fournir de meilleures informations sur l'emplacement de Sun Jars et à ajouter Java.net référentiel 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>
38
Pascal Thivent

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
13
David Durham
8
S. Bollweber

Si vous rencontrez des erreurs similaires lors de l’utilisation de Windows PowerShell, essayez plutôt la simple ligne de commande de Windows. Je n'ai pas trouvé la cause, mais PowerShell semble interpréter certains paramètres de Maven.

4
Koraktor

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

Crédit pour 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, artifactId et une version et remplissez-les, OK.
  3. Les dépendances seront ajoutées au fichier pom.xml et apparaîtront sous le noeud "Bibliothèques" du projet maven.
  4. Cliquez avec le bouton droit sur le nœud Lib et "installez manuellement l'artefact", remplissez le chemin d'accès au fichier jar. Le pot doit être installé dans le dépôt Maven local avec les coordonnées entrées à l'étape 2)
2
Paul