Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让maven在本地repo中安装测试包而不运行它们_Java_Maven_Ant - Fatal编程技术网

Java 如何让maven在本地repo中安装测试包而不运行它们

Java 如何让maven在本地repo中安装测试包而不运行它们,java,maven,ant,Java,Maven,Ant,这似乎是一个直截了当的问题,有很多答案,但没有一个真正起作用。人们总是建议使用-Dmaven.test.skip=true或-DskipTests,但这些选项完全跳过测试,并且它们永远不会移动到本地repo,因此,当我安装依赖于本地repo中存在的测试的其他模块时,它们会失败 我需要将测试放在与主类相同的组id和工件id下,只使用不同的分类器和范围,这样我就可以在其他类似的项目中引用它们 <dependency> <groupId>myGroupI

这似乎是一个直截了当的问题,有很多答案,但没有一个真正起作用。人们总是建议使用-Dmaven.test.skip=true或-DskipTests,但这些选项完全跳过测试,并且它们永远不会移动到本地repo,因此,当我安装依赖于本地repo中存在的测试的其他模块时,它们会失败

我需要将测试放在与主类相同的组id和工件id下,只使用不同的分类器和范围,这样我就可以在其他类似的项目中引用它们

    <dependency>
        <groupId>myGroupId</groupId>
        <artifactId>myArtificatId</artifactId>
        <version>4.0-SNAPSHOT</version>
        <classifier>tests</classifier>
        <scope>test</scope>
    </dependency>

myGroupId
Myartificatoid
4.0-快照
测验
测试
我想你想要这个:

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

org.apache.maven.plugins
maven jar插件
2.4
试验罐

这将打包
-test
分类jar。请注意,如果您使用
-DskipTests
,surefire和failsafe将跳过测试的执行,而如果您使用
-Dmaven.test.skip=true
测试,surefire、failsafe和编译器将完全忽略测试。

您是否使用maven jar插件的配置生成测试jar
-Dmaven.test.skip
甚至不会编译测试,而
-DskipTests
应该跳过执行,不阻止任何其他阶段(包括安装)。我们使用svn,我不想弄乱pom文件,我不想在每次svn更新期间还原它。是否可以通过settings.xml指定此选项?您可以在配置文件中配置插件执行,或者您可以直接启动maven目标作为
mvnjar:testjar
,并使用下面的@zoltan answer进行安装;但是,当您重建主工件时,不重建测试jar是没有意义的(如果您没有什么好的理由不告诉别人)。