2009-08-14 27 views
7

環境変数をコマンドラインで設定するのではなく、ビルドプロファイルで設定することはできますか?Mavenコマンドライン

たとえば、テスト環境(-Denv = test)を使用しているときにデバッガを有効にしたいとします。

私はMavenのは、これをしたい:

export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n" 

このように、私はすぐに何度も同じ繰り返し行を入力することなく、デバッガをアタッチすることができます。私はこのケースでは、私を助け信じない

:あなたはMVNmvnDebugではなく、を実行して、デバッガを起動することができますMavenの最近のバージョンでは

<plugin> 
... 
<!-- Automatically enable the debugger when running Jetty --> 
        <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n</argLine> 
       </configuration> 
... 
</plugin> 

ウォルター

答えて

11

を、 mvnDebug bat/shファイルはMVN__DEBUG_OPTSを設定し、java.exeに渡します。渡された値は次のとおりです。

set MAVEN_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 

それが十分でない場合、これは(私が持っていたら、私が更新します、私はまだこれをテストしていませんでした注意してください)動作する可能性があります。 Mavenは、接頭辞が "env"のプロパティを読み取ります。環境変数を設定することができます。すなわち:

<profile> 
    <id>dev</id> 
    <properties> 
    <env.MAVEN_OPTS>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000<env.MAVEN_OPTS> 
    </properties> 
</profile> 

更新:確実なプラグインを使用すると、テスト実行中に使用することがspecify system propertiesすることができます。以下のような構成は以下のとおりです。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.4.2</version> 
    <configuration> 
    <systemProperties> 
     <property> 
     <name>propertyName</name> 
     <value>propertyValue</value> 
     </property> 
    </systemProperties> 
    </configuration> 
</plugin> 

あなたのためにそれらの作品のどれもが、初期化相に結合し、あなたの変数を設定し、あなたのプロファイルで構成された小型のプラグインを作成することは可能ではない場合。プラグインがするSystem.setProperty()を使用して各渡されたプロパティを設定します実行中

<plugin> 
    <groupId>name.seller.rich</groupId> 
    <artifactId>maven-environment-plugin</artifactId> 
    <version>0.0.1</version> 
    <executions> 
    <execution> 
     <id>set-properties</id> 
     <phase>initialize</phase> 
     <goals> 
     <goal>set-properties</goal> 
     </goals> 
    </execution> 
    </executions>        
    <configuration> 
    <properties> 
     <env.MAVEN_OPTS>-Xdebug -Xnoagent -Djava.compiler=NONE 
      -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000<env.MAVEN_OPTS> 
    </properties> 
    </configuration> 
</plugin> 

:プラグインは、このような構成を持っているでしょう。最初の2つが適切でない、またはうまくいかない場合、これはあなたの問題に対処する必要があります。

+0

こんにちは、 mvnDebugコマンドは機能しましたが、かなりハングアップして多くのメモリを消費しているようです。私はまだそれらの他のオプションと運がなかったが、私は試し続けます。 ウォルター –

関連する問題