Как запустить два скрипта gmaven в одном файле pom.xml?
Я хочу запустить два сценария из maven, один из которых зависит от переменной среды. Я пытаюсь что-то вроде этого:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
println "My script"
</source>
</configuration>
</execution>
</executions>
</plugin>
</build>
...
<profile>
<activation>
<property>
<name>env.MY_ENV_VAR</name>
<value>runStuff</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
println "My conditional script"
</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Когда я запускаю "mvn validate", чтобы проверить это, я получаю "Мой скрипт". Когда я устанавливаю переменную env и запускаю ее снова, я получаю "Мой условный скрипт", но не "Мой сценарий". Кажется, что если условие выполнено, а второе выполняется, то первое не будет.
Я хочу запустить первый безоговорочно, а второй - только если установлена переменная env. Я думал о проверке переменной env в самом скрипте, но это тоже кажется проблематичным, в соответствии с этим вопросом.
Я новичок в Maven, поэтому не исключено, что есть простое решение, но я его не вижу.
1 ответ
Я нашел ответ. Каждое выполнение должно иметь уникальный идентификатор. Если вы не укажете идентификатор, вы получите "default" для обоих. Как только я присвоил условному идентификатору нестандартный идентификатор, они оба запустились.
<build>
<plugins>
<plugin>
...
<executions>
<execution>
<id>Unconditional-script</id>
...
</execution>
</executions>
</plugin>
</build>
...
<profile>
...
<build>
<plugins>
<plugin>
...
<executions>
<execution>
<id>Conditional-script</id>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>