我正在尝试用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 所以我想知道这个特性是否被支持,以及我做错了什么。
附注:我知道在maven中调用maven是一种反模式,但在没有其他方法的情况下,这种情况确实很少见。
发布于 2017-12-04 22:50:23
在使用maven invoker查看项目后,我找到了诀窍。
不使用goal标签,而是提供invokerPropertiesFile:
<pom>${project.basedir}/xxx/pom.xml</pom>
<invokerPropertiesFile>${project.basedir}/invoker.properties</invokerPropertiesFile>文件内容:
invoker.goals=compile -P resolve-maven-deps https://stackoverflow.com/questions/47630862
复制相似问题