0

私は次のプロジェクト構造を持っています:

  1. プロジェクト「parent-project」にはソースファイルがなく、「junit-wrapper」、「child1-test」、「child2-test」などのサブプロジェクトがあります。
  2. サブプロジェクト「junit-wrapper」には、src / main / java内にjavaソースのみがあり、これは基本的に、階層「parent-project」の下のすべての依存関係とバイナリをラップするために作成されます。
  3. サブプロジェクト「child1-test」および「child2-test」にはソースファイルがなく、「child1-env」および「child2-env」としてのサブプロジェクトのみが含まれています。
  4. サブプロジェクト「child1-env」と「child2-env」には、src / test/java内にのみjunitがあります。

親pom.xmlをビルドしてスーパーjar(junit-wrapper内)をビルドしたい

これがmaven-assembly-pluginを使用して可能になることを願っていますが、pom.xmlでこれを構成する方法がわかりません。これを確実に達成するために、pom.xmlまたはassembly.xml(プラグインの使用時)エントリは何である必要がありますか?

提案してください。

ありがとう。

4

2 に答える 2

2

テストクラスを含む jar を作成するには、次のように maven-jar-plugin を使用するのが最善の解決策です。

<project>
  <build>
    <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-jar-plugin</artifactId>
       <version>2.2</version>
       <executions>
         <execution>
           <goals>
             <goal>test-jar</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
    </plugins>
  </build>
</project>

他のモジュールでは、次の依存関係を介して test-jar を使用できます。

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>com.myco.app</groupId>
      <artifactId>foo</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
  </dependencies>
  ...
</project>
于 2012-10-05T06:40:42.377 に答える
0

この構成を の pom ファイルに含めると、「uber-jar」が取得されますjunit-wrapper

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2.1</version>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

アセンブリー記述子 (assembly.xml) はjar-with-dependencies、maven-assembly-plugin 内で既に使用可能であるため、必要ありません。packageフェーズの前にアセンブリ プラグインを実行しないでください。そうしないと、maven モジュールのコードがアセンブリにパッケージ化されません。

于 2012-10-04T17:15:20.700 に答える