Как запустить два скрипта 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>
Другие вопросы по тегам