【问题标题】:How to modify pom file to add src/test/java files to maven jar with dependancies如何修改 pom 文件以将 src/test/java 文件添加到具有依赖关系的 maven jar
【发布时间】:2014-04-01 20:25:25
【问题描述】:

我需要将 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>

【问题讨论】:

  • 您能解释一下为什么要这样做吗?该测试源目录的全部目的是这些文件包含在构建中。
  • 是的,我可以,我做了一个测试人员,我希望能够从 jar 中运行它。但是因为它的测试是在 src/test/java
  • 或者,您可以将测试 GUI 放入第二个模块...

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


【解决方案1】:

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

similar question is asked here

【讨论】:

    【解决方案2】:

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

    【讨论】:

    【解决方案3】:

    想分享我是如何让它工作的,虽然很丑。重申一下,我只想在创建带有依赖项的 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>
    

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

    非常丑陋,没有动态,我还在寻找更好的方法。但现在可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 2015-05-07
      • 2014-06-20
      • 2014-04-25
      • 2016-05-14
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多