我正在尝试用MavenInvokerPlugin替换maven exec,因为Jenkins上的问题转发了maven设置文件。
所以在bash中看起来很直白:
mvn dependency:copy-dependencies@resolve-maven-deps
我对MavenInvokerPlugin配置的翻译是
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<projectsDirectory>${project.basedir}/src/main/docker</projectsDirectory>
<localRepositoryPath>${project.build.mavenDependencies}</localRepositoryPath>
<goal>dependency:copy-dependencies@resolve-maven-deps</goal>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>run</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
看起来执行ID完全被忽略了,因为我尝试了随机字符串并且mvn成功构建了项目。
mvn dependency:copy-dependencies@asdfasdfa
所以我想知道这个功能是否得到支持以及我做错了什么。
P.S。我知道从maven中调用maven是反模式,但是在没有其他方法的情况下,这正是极少数情况。
答案 0 :(得分:0)
在使用maven调用者查看项目后,我发现了这个技巧。
不使用目标标记,而是提供invokerPropertiesFile:
<pom>${project.basedir}/xxx/pom.xml</pom>
<invokerPropertiesFile>${project.basedir}/invoker.properties</invokerPropertiesFile>
文件内容:
invoker.goals=compile -P resolve-maven-deps