为了使用当前在我的超级pom中运行的相同目标来调用Maven调用程序插件,我需要一种方法将当前目标传递给invoker-plugin的配置。
喜欢
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
...
<configuration>
<goals>
<goal>${maven.goal}</goal>
</goals>
...
答案 0 :(得分:1)
Maven Help plugin可能会帮助您get where you want to go。 $ {reactorProjects}变量保存您正在寻找的内容,但可能不是您想要重用它的格式。
您可以通过以下方式查看all the expressions:
mvn help:expressions
然后你可以test one of them without the tedium of a pom via evaluation:
mvn help:evaluate
将带您进入可用于尝试表达式的提示。
如果我使用帮助:评估并输入$ {reactorProjects},我将获得大量输出,但其中一部分包括您所追求的数据:
<plugins>
<plugin>
<inheritanceApplied>true</inheritanceApplied>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-help-plugin</artifactId>
<version>2.1</version>
<extensions>false</extensions>
<dependencies/>
</plugin>
</plugins>
<pluginMap class="linked-hash-map">
<entry>
<string>org.apache.maven.plugins:maven-help-plugin</string>
<plugin reference="../../../plugins/plugin"/>
</entry>
</pluginMap>
答案 1 :(得分:0)
我添加了以下依赖项:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</dependency>
然后在我的MOJO中:
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
...
@Parameter(defaultValue = "${session}", readonly = true)
private MavenSession session;
最后,我能够实现目前的目标:
MavenExecutionRequest executionRequest = session.getRequest();
List<String> goals = executionRequest.getGoals();