我有一个我想安装的测试罐。我不确定是否有不同的方法来安装test-jar,例如定义一个告诉maven它是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
那么我将如何安装测试罐呢?我知道有必要告诉maven它是一个测试jar,因为groupId和artifactId与另一个jar相同(这将是example-test.jar测试的jar)。
答案 0 :(得分:43)
您无需手动安装它们。 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>
答案 1 :(得分:9)
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
答案 2 :(得分:1)
您将测试代码放在与/ src / test / java下的普通代码相同的项目中。 Maven负责不在包装的jar中包含测试代码。如果您有仅用于单元测试的依赖项(例如mockito,junit等),那么您可以在maven依赖项中为它们提供“test”范围,它们将可用于单元测试但不包含在实际jar中
答案 3 :(得分:0)
我猜你可能错过了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