2017-04-05 11 views
0

mavenから2つのスクリプトを実行したいのですが、その1つは環境変数に依存しています。私はこのようなものを試しています:1つのpom.xmlで2つの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> 

これをテストするために "mvn validate"を実行すると、私は "My script"を取得します。 env変数を設定してもう一度実行すると、 "My conditional script"が表示されますが、ではなく、 "My script"です。条件が満たされ、2番目の条件が満たされれば、最初の条件は実行されないようです。

env変数が設定されている場合にのみ、最初のものを無条件での2番目のものを実行したいとします。私はスクリプト自体にenv変数をチェックすることを考えましたが、それも問題ありと思われます(this questionによる)。

私はmavenには新しいので、単純な解決策はありませんが、私はそれを見ていません。

答えて

0

答えが見つかりました。各実行には一意の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> 
関連する問題