Есть ли переменная в Maven, которая содержит текущую цель? - PullRequest
3 голосов
/ 13 марта 2009

Чтобы вызвать плагин Maven invoker с той же целью, которая в данный момент выполняется в моем uber-pom, мне нужен способ передать текущую цель в конфигурацию invoker-plugin.

Что-то вроде

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

Ответы [ 2 ]

1 голос
/ 13 марта 2009

Плагин Справка Maven может помочь вам добраться туда, куда вы хотите . Переменная $ {pipelineProjects} содержит то, что вы ищете, но, возможно, не в том формате, в котором вы хотите его использовать.

Вы можете просмотреть все выражения , доступные для вас через:

mvn help:expressions

и затем вы можете протестировать один из них без скуки англичанина с помощью оценки :

mvn help:evaluate

, который выводит вас на приглашение, которое вы можете использовать для выражения выражений.

Если я воспользуюсь справкой: оценивать и наберу $ {processorProjects}, я получу много выходных данных, но часть из них содержит данные, которые вы ищете:

<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 голосов
/ 15 февраля 2017

Я добавил следующую зависимость:

<dependency>
  <groupId>org.apache.maven</groupId>
  <artifactId>maven-core</artifactId>
  <version>3.0.3</version>
</dependency>

А потом в моем МОДЖО:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...