我的问题是,我想将一个外部库自动导入到用户的本地Maven存储库中。
这是我使用maven-install-plugin的方式:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-external</id>
<phase>clean</phase>
<configuration>
<file>${basedir}/myjar.jar>
<repositoryLayout>default</repositoryLayout>
<groupId>mygroupid</groupId>
<artifactId>myartefactid</artifactId>
<version>myversion</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
但是在pom中,要使其正常工作,我必须在两个不同的命令中执行:
mvn clean
mvn install
如果我只是跑步
mvn clean install
在安装阶段无法解决我的依赖关系是失败的(除非我单独进行过mvn clean,而且我当然没有清理本地存储库)。仅当我单独运行“ mvn clean”时,Clean才调用该插件。
我想在运行'mvn install'时自动导入我的依赖项。或至少在单个命令中运行“ mvn clean install”时。
您的解决方案不能仅使用一个Maven命令。
如果您以mvn something
启动Maven,则将解决依赖关系first,因此将找不到在构建期间由插件安装的任何内容。
正如khmarbaise已经说过的,解决方案是首先将工件放入存储库中。通常的解决方案是您的公司Nexus / Artifactory(如果进行严重的Maven开发,应该有一个解决方案)。
如果确实不可能,则可以按照以下说明使用目录作为Maven存储库:https://stackoverflow.com/a/28762617/927493