Подтвердить что ты не робот

Как выполнить определенную задачу с определенной конфигурацией в плагине Maven, когда у меня есть несколько конфигураций для этой цели

См. конфигурацию плагина из pom.xml ниже.

Я могу сделать:

mvn myplugin:myGoal

Что запускает myGoal (оба исполнения я предполагаю), но я хочу иметь возможность выбирать либо первое, либо второе выполнение независимо.

Я знаю, что я могу добавить id в элемент выполнения, но как я могу ссылаться на этот идентификатор в командной строке. Я хотел бы получить то, что делает то, что делает эта воображаемая команда:

mvn myplugin:myGoal --executionId=1

Возможно ли это, или я собираюсь сделать это неправильно?

<plugin>
                <groupId>org.myplugin</groupId>
                <artifactId>myplugin-maven-plugin</artifactId>
                <version>1.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>myGoal</goal>
                        </goals>
                        <configuration>
                            <myParam>cats</myParam>
                        </configuration>
                    </execution>
                    <execution>
                        <goals>
                            <goal>myGoal</goal>
                        </goals>
                        <configuration>
                            <myParam>dogs</myParam>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
4b9b3361

Ответ 1

Я могу сделать mvn myplugin:myGoalWhich запускает myGoal (оба исполнения, я полагаю)

Ни один из них (при условии, что у них есть уникальный id). Казни связаны с фазой, вам нужно запустить заданную фазу, чтобы вызвать их.

Я знаю, что я могу добавить id в элемент выполнения, но как я могу ссылаться на этот идентификатор в командной строке.

Не поддерживается. То, что возможно для подключаемых модулей в CLI, заключается в определении конфигурации не глобальной в POM с помощью специального default-cli executionId, например:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
          <descriptorRef>project</descriptorRef>
        </descriptorRefs>
      </configuration>
    </execution>
  </executions>
</plugin>

Возможно ли это, или я собираюсь сделать это неправильно?

Нет, это невозможно. Либо передайте параметры в командной строке, либо используйте профили (с или без выполнения вышеуказанного исполнения по умолчанию).

Ссылки

Ответ 3

Эй вы можете создать свою цель следующим образом: -

org.myplugin:myplugin-maven-plugin:1.1.1:myGoal  i.e
<groupId>:<artifactId>:<version>:<yourgoal>

Это работает в моем случае...

Ответ 4

Предположение, которое вы сделали, если вы вызываете

  mvn myplugin:myGoal

Но проблема в том, что вы получите сообщение об ошибке, потому что выполнение не имеет уникального идентификатора (оба в этом случае имеют одинаковый).

Вы можете достичь того, что вам нравится делать через профили, которые вы можете активировать через mvn -PXYZ и mvn -PABC