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

时间:2009-03-13 10:20:48

标签: variables maven-2

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

喜欢

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-invoker-plugin</artifactId>
        ...
        <configuration>
          <goals>
            <goal>${maven.goal}</goal>
          </goals>
        ...

2 个答案:

答案 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();