2017-04-05 4 views
0

maven에서 두 개의 스크립트를 실행하고 싶습니다. 그 중 하나는 환경 변수에 따라 다릅니다. 나는 이런 식으로 뭔가를 시도하고있다 :이 테스트하기 위해 "MVN의 유효성 검사"를 실행하면하나의 pom.xml에서 두 개의 gmaven 스크립트를 어떻게 실행합니까?

<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> 

, 나는 "내 스크립트"를 얻는다. env 변수를 설정하고 다시 실행하면 "내 조건부 스크립트"가 표시되지만 이 아니라 "내 스크립트"가됩니다. 조건이 충족되고 두 번째 조건이 충족되면 첫 번째 조건은 만족스럽지 않은 것으로 보입니다.

env 변수가 설정되어있는 경우에만 처음으로 무조건적으로 을 실행하고 싶습니다. 나는 스크립트 자체에서 env 변수를 검사 할 생각을했지만 역시 문제가있는 것처럼 보입니다. this question에 따르면.

나는 단순한 해결책이있을 것 같지 않지만, 나는 그것을 볼 수 없다.

답변

0

답변을 찾았습니다. 각 실행에는 고유 한 ID가 있어야합니다. ID를 지정하지 않으면 두 가지 모두에 대해 '기본값'이됩니다. 조건부 ID를 기본 ID가 아닌 다른 ID에 부여하면 둘 다 실행됩니다.

<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>