如何在Maven 2中手动安装工件?

当我尝试用Maven 2手动安装工件时遇到了一些错误。我想用命令从本地目录安装jar

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

但是Maven给出了一个构build错误,如下所示:

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

我的命令有错吗?

您需要指出工件的groupId,artifactId和版本:

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

根据Maven 安装第三方JAR的指南 ,命令是:

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

你确实需要包装的select。 这回答了原来的问题。

现在,在你的背景下,你正在与Sun提供的一个jar子打架。 您也应该阅读Sun JARs页面的应对 。 在这里,您将学习如何帮助maven为您提供有关Sun jars位置的更好信息,以及如何添加包含 jta-1.0.1B.jar Java.net Maven 2存储库 。 在你的settings.xml (不可移植的)或者 pom.xml (可移植的)中join这个:

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

我不得不添加包装,所以:

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

如果您在使用Windows PowerShell时遇到类似错误,则应该尝试使用Windows的简单命令行。 我没有发现是什么导致了这一点,但PowerShell似乎解释了一些Maven的参数。

所有发布的答案从严格的maven的angular度来正确地讨论这个问题。 我的问题是在使用Netbeans作为我的主要IDE的maven做这个安装。 我发现下面的文章有帮助。

请参阅以下netbeans论坛文章: http : //forums.netbeans.org/topic22907.html

  1. 在Maven项目中打开“添加依赖项”对话框
  2. 弥补一些groupId,artifactId和版本并填充它们,OK。
  3. 依赖将被添加到pom.xml中,并将出现在maven项目的“Libraries”节点下
  4. 右键单击Lib节点并“手动安装工件”,填充jar的path。 Jar应该被安装到当地的Maven回购,在步骤2)