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

如何修改pom文件以将src/test/java文件添加到具有依赖性的maven jar,java,maven,pom.xml,maven-assembly-plugin,jar-with-dependencies,Java,Maven,Pom.xml,Maven Assembly Plugin,Jar With Dependencies,我需要在jar中包含src/test/java文件和依赖项。但是当我创建jar时,它失败了,因为它找不到类。这是pom部分。任何帮助都将不胜感激。 我使用:mvn clean assembly:single编译 <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descrip

我需要在jar中包含src/test/java文件和依赖项。但是当我创建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>

maven汇编插件
带有依赖项的jar
包裹
单一的

默认情况下,它不包括在内,您可以有更大的灵活性,您可以使用它来生成包含任何内容的jar,您可以将内容放入其中

,或者您可以使用maven资源插件并将src/test/java标记为附加源代码


想和大家分享我是如何让它工作的,虽然很难看。为了重申这一点,我只想在我制作带有依赖性的jar时将测试类添加到类路径中。我所做的:

从assembly pludin切换到shade plugin 并将所需的.class文件从目标/测试类移动到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>

目标/测试类/path/to/class/i/need/file.class
在/classpath/destination/of/class/i/need/file.class中
它美化了复制粘贴,没有找到通过目录来实现的方法,所以它一次只复制1.class


非常丑陋,没有活力,我还在寻找更好的方法。但是现在就可以了。

你能解释一下为什么要这样做吗?这个testsources目录的全部目的是,这些文件不包括在构建中。是的,我可以,我为测试做了一个人,我希望能够从jar中运行它。但是,由于它的测试是在src/test/java中进行的,或者,您可以将测试GUI放入第二个模块中……我正在使用maven assembly插件,您能否提供一个示例,说明我将如何使用maven assembly插件添加src/test/java?请特别检查此