如何修改pom文件以将src / test / java文件添加到带有依赖项的maven jar中

时间:2014-04-01 20:25:26

标签: java maven pom.xml maven-assembly-plugin jar-with-dependencies

我需要将src / test / java文件包含在带有依赖项的jar中。但是当我创建jar时它会失败,因为它无法找到类。这是pom部分。任何帮助,将不胜感激。 我编译:mvn clean assembly:single

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
   </configuration>
   <executions>
     <execution>
       <phase>package</phase>
       <goals>
         <goal>single</goal>
       </goals>
     </execution>
   </executions>
</plugin>

3 个答案:

答案 0 :(得分:1)

或者您可以使用maven资源插件并将src / test / java标记为其他来源

similar question is asked here

答案 1 :(得分:0)

默认情况下它不包括在内,您可以使用maven assembly plugin获得更大的灵活性,您可以使用它来生成包含您想放入的任何内容的jar

答案 2 :(得分:0)

想要分享我是如何工作的,虽然非常难看。重申一下,只有当我使用依赖项制作jar时,我才想将测试类添加到类路径中。我做了什么:

从assembly-pludin切换到shade-plugin 并将我需要的.class文件从target / test-classes移动到jar中的适当位置

<transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
    <file>target/test-classes/path/to/class/i/need/file.class</file>
    <resource>in/classpath/destination/of/class/i/need/file.class</resource>
</transformer>

它的荣耀复制粘贴,并没有看到通过目录这样做的方式,所以一次只做1 .class。

非常丑陋,没有动态,我仍然在寻找更好的方法。但是现在它会这样做。