34

インストールしたいテストジャーがあります。mavenにtest-jarであることを伝えるプロパティを定義するなど、test-jarをインストールする別の方法があるかどうかはわかりません。

また、groupId と artifactId は、テストが作成された別の jar と同じです。

これまでのところ、これは私のインストールコマンドがどのように見えるかです:

mvn install:install-file -DgroupId=com.example -DartifactId=example -Dpackaging=jar -Dversion=1.2.3 -Dfile=example-test.jar -DgeneratePom=true

では、テスト jar を正確にインストールするにはどうすればよいでしょうか。groupId と artifactId は別の jar (example-test.jar がテストされている jar) と同じであるため、maven に test-jar であることを伝える必要があることはわかっています。

4

4 に答える 4

50

手動でインストールする必要はありません。Maven は、実行時にこれを行います。

mvn clean install

次の行に沿った構成が必要です。

    ...
    <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>
    ...

次に、後でそれを使用する必要がある他のモジュールで、依存関係のタイプを次のように定義する必要があります。

 <dependency>
    <groupId>com.foo</groupId>
    <artifactId>bar</artifactId>
    <version>1.2.3</version>
    <type>test-jar</type>
    <scope>test</scope>
 </dependency>
于 2011-06-24T14:29:46.047 に答える
10
mvn install:install-file 
    -DgroupId=com.example 
    -DartifactId=example 
    -Dversion=1.2.3 
    -Dclassifier=tests 
    -Dpackaging=test-jar 
    -Dfile=example-1.2.3-tests.jar
于 2013-02-27T09:44:25.260 に答える
1

テスト コードは、/src/test/java の下の通常のコードと同じプロジェクトに配置します。Maven は、パッケージ化された jar にテスト コードを含めないように処理します。単体テスト (mockito、junit など) にのみ使用される依存関係がある場合は、maven 依存関係で "test" のスコープを指定すると、それらは単体テストで使用できますが、実際の jar には含まれません。 .

于 2011-06-24T14:34:49.727 に答える
-1

generatePom フラグを見逃した可能性があると思います。同じエラーが発生しましたが、最終的に以下が機能しました

mvn install:install-file 
    -Dfile=c:/primo/primo-1.0.0-SNAPSHOT.jar 
    -DgroupId=uk.bl.primo 
    -DartifactId=primo 
    -Dversion=1.0.0 
    -Dpackaging=jar 
    -DgeneratePom=true
于 2013-02-12T10:46:26.580 に答える