2017-11-30 5 views
1

maven(一般)またはexec-maven-pluginをオンデマンドでのみ実行するように設定する方法はありますか?要求に応じてexec-maven-pluginを実行する

私はアドホックテストに使用するテストメイン(java)を持っています。 Eclipse内からうまく実行できます。しかし、コマンドラインからも実行したいと思っています。

しかし、私はしませんが、それはユニットテスト(テストフェーズ)で実行したいです。

しかし、それはテストサブツリーからのコードを使用し、テストクラスパスを使用するため、テストフェーズの後にステージングする必要があります。

これは私が持っているものです。テストフェーズの一部として実行される点を除いて、正常に動作します。

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.6.0</version> 
     <executions> 
      <execution> 
       <id>adhoc-domain-test</id> 
       <phase>test</phase> 
       <goals> 
        <goal>java</goal> 
       </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <mainClass>com.abc.test.AdHocTest</mainClass> 
      <classpathScope>test</classpathScope> 
     </configuration> 
    </plugin> 

私はverify(例えば)に位相を変更すると、それはまだmvn install上で実行されます。オンデマンドでのみプラグインを実行するには

+0

ちょうどあなたのポンポンから ' ...'部分を除去し、あなたがして起動することができます: 'MVNのexec:Javaの@アドホック・ドメイン・テスト。 ..' ...さらに、pluginManagementでexec-maven-pluginを定義します。 – khmarbaise

答えて

1

、あなたはこのように、デフォルトではアクティブではありませんプロファイル内のプラグインをラップすることができます:

<profiles> 
    <profile> 
     <id>my-profile</id> 
     <activation> 
      <activeByDefault>false</activeByDefault> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
       ... 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

profiles要素がproject要素の下に直接行きます。あなたは次のようにプラグインを実行することができます

mvn -P my-profile ...

+0

ありがとう、それはトリックを行います。私は、pomの最後にプロファイル(execプラグイン付き)を追加しました。 1つの不満は、それがどんなプロフィールの外のものにもリンクされていないようです。 'mvn clean; mvn -P exec:java'は最初にプロジェクトをビルドしません。もう一つの軽微な問題は、 'mvn exec:java'(プロファイルを有効にしないで)がexecプラグインを部分的に実行しているように見えるということです(エラー:' 'mainClass 'for goal org.codehaus.mojo:exec-maven-plugin:1.6.0: javaが見つからないか無効です ' – rwfbc

+0

最初の問題については、コマンドラインで' test'や 'install'のようにmavenフェーズを指定する必要があります。プラグインconfigの' execution'部分を残しておけば、プラグイン2番目の問題はプラグインがあなたのプロフィールに対してのみ有効になっていることを反映していますが、これはデフォルトでそれを実行しないために支払う必要がある価格です。 :) – gjoranv

関連する問題