Maven中是否存在一个保持当前目标的变量?

问题描述 投票:3回答:2

为了使用当前在我的超级pom中运行的相同目标调用Maven调用程序插件,我需要一种方法将当前目标传递给invoker-plugin的配置。

就像是

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-invoker-plugin</artifactId>
        ...
        <configuration>
          <goals>
            <goal>${maven.goal}</goal>
          </goals>
        ...
variables maven-2
2个回答
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

它会将您带到可以用来尝试表达式的提示。

如果我使用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>

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();
© www.soinside.com 2019 - 2024. All rights reserved.