我使用install:install-file将jar安装到我的本地存储库。我的pom.xml编写如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>install-paho</id>
<phase>generate-resources</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/lib/paho.jar</file>
<groupId>org.eclipse</groupId>
<artifactId>paho</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</configuration>
</execution>
</executions>
</plugin>
你可以发现我将它绑定到阶段'generate-resources'。然后,我使用命令mvn eclipse:eclipse
。它工作得非常好,jar被复制到我的本地存储库。但是当我使用order {时{1}}我收到错误:
mvn install:install-file
使用[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file (default-cli) on project xxx:
The parameters 'file' for goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file are missing or invalid -> [Help 1]
mvn compile
答案 0 :(得分:8)
由于您已将install:install-file
目标绑定到generate-sources
阶段,因此您应该运行mvn compile
或mvn install
等来使用已定义的配置。
mvn eclipse:eclipse
有效,因为maven在调用generate-sources
之前运行eclipse:eclipse
阶段。
修改:从评论中看,您希望在项目中使用本地可用的paho.jar
,方法是首先将其安装到generate-sources
阶段的本地仓库中,之后在项目中将其用作dependency
。
由于maven在开始执行其生命周期目标之前检查dependencies
的可用性,因此无法正常工作。
您可以在pom的上下文之外使用mvn install:install-file
一次性手动安装它。更好的是,您可以将其部署到repository manager
,然后像任何其他依赖项一样访问它。
但是,如果您仍想沿着这条路走下去,另一种方法是使用提供jar路径的system
范围来指定依赖关系。请参阅this。
<project>
...
<dependencies>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>paho</artifactId>
<version>1.0.0/version>
<scope>system</scope>
<systemPath>${basedir}/lib/paho.jar</systemPath>
</dependency>
</dependencies>
...
</project>