2011-12-21 7 views
9

通常、生成されたソースはターゲットディレクトリに作成する必要があります。しかし、テストにのみ使用されるクラスはどのように処理するのですか?私はこれらのクラスが私の瓶の中にパッケージ化されることを望みません。このような状況に対処する共通の方法はありますか?Maven:テスト用に生成されたソースを扱うにはどうすればいいですか?

答えて

16

使用Mavenはビルドにあなたの生成されたテストソースファイルを追加するためのヘルパープラグインのadd-test-source目標を構築する - >http://mojo.codehaus.org/build-helper-maven-plugin/add-test-source-mojo.html

それは、この目的で追加されたディレクトリがのtest-compileフェーズでコンパイラプラグインによって自動的にピックアップされることを保証しますビルド。ここで

EDIT

はCXF-codegenを-プラグインのようにディレクトリを追加することを、私が言及している必要がありCXF-codegenを-プラグイン

<build> 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-codegen-plugin</artifactId> 
     <version>${cxf.version}</version> 
     <executions> 
     <execution> 
      <id>generate-test-sources</id> 
      <phase>generate-test-sources</phase> 
      <configuration> 
      <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
      <wsdlOptions> 
       <wsdlOption> 
       <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl> 
       </wsdlOption> 
      </wsdlOptions> 
      </configuration> 
      <goals> 
      <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>${build-helper-maven-plugin.version}</version> 
     <executions> 
     <execution> 
      <id>add-test-sources</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
      <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
      <sources> 
       <source>${project.build.directory}/generated/cxf</source> 
      </sources> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    ... 
    </plugins> 
</build> 
+0

とtestignためのコードを生成する方法の例です。通常のソースフォルダです。だから、それはまだ瓶の中にパッケージ化されます、それは本当ですか? – lrxw

+0

@mephi。実際には、プラグインの説明から、WSDLドキュメントからJavaファイルを吐き出すように見えます。 'generate-test-sources'フェーズに' cxf-codegen-plugin'を追加し、その直後に 'build-helper-maven-plugin:add-test-source'を追加すると、コンパイルされたクラスはテストの実行にのみ利用できます –

関連する問題