0

我正在尝试用 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 

所以我想知道这个功能是否受支持以及我做错了什么。

PS我知道从maven中调用maven是反模式,但是当没有其他方法时,这正是这种罕见的情况。

4

1 回答 1

0

在使用 maven 调用程序查看项目后,我发现了诀窍。

不使用目标标签,而是提供invokerPropertiesFile:

<pom>${project.basedir}/xxx/pom.xml</pom>    
<invokerPropertiesFile>${project.basedir}/invoker.properties</invokerPropertiesFile>

文件内容:

invoker.goals=compile -P resolve-maven-deps 
于 2017-12-04T14:50:23.460 回答