2012-11-07 8 views
6

Javaエージェントの引数を使ってjvmのユニットテストを開始するには、maven sure fireプラグインを設定します。エージェントのjarファイルはmavenの中心から取得されているので、mavenに自動的にエージェントのjarファイルへのパスを把握させます。依存関係のjvmエージェントを使用するようにmaven surefireを設定するにはどうすればよいですか?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12.4</version> 
    <configuration> 
     <argLine>-javaagent: How to reference an agent jar that is a depedency </argLine> 
    </configuration> 
</plugin> 

メイヴェン座標を使用しているプロジェクトの依存関係であるエージェントへのパスをどのように参照できますか?

答えて

8

必要なジャーの1つをターゲットのコピー先にコピーできます。その後、コマンドラインでそのjarファイルを参照してください。ここで

は(有効な薬の瓶ではなく、あくまでも一例を示すことにlog4jを使用して)の例である:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.5.1</version> 
    <executions> 
     <execution> 
      <id>copy-agent</id> 
      <phase>process-test-classes</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>log4j</groupId> 
         <artifactId>log4j</artifactId> 
         <version>1.2.14</version> 
         <outputDirectory>${project.build.directory}/agents</outputDirectory> 
         <destFileName>my-special-agent.jar</destFileName> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12.4</version> 
    <configuration> 
     <argLine>-javaagent:${project.build.directory}/agents/my-special-agent.jar</argLine> 
    </configuration> 
</plugin> 
+0

わかりやすい。これは私のために働いていません。 – Kieveli

1

使用

依存プラグインのプロパティモジョ。

<argLine>-javaagent:${org.springframework:spring-instrument:jar}</argLine>