经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Maven » 查看文章
使用maven如何将项目中的test代码打包进jar中
来源:jb51  时间:2022/3/8 12:55:20  对本文有异议

maven将项目的test代码打包进jar中

项目结构如下:

…/src/main/java/package/** <– application code

…/src/test/java/package/** <– test code

需求:

test中有一个包含main方法的主类TestMain.java,将main、test、全部依赖代码打包到一个jar包中,最终能通过java -jar的方式运行TestMain

这里Maven Jar Plugin 、 Maven Shade Plugin 都不是很适用。

我们选择Maven Assembly Plugin来打包

三步实现:

在pom中添加如下

  1. <project>
  2. ...
  3. <build>
  4. <plugins>
  5. <plugin>
  6. <artifactId>maven-assembly-plugin</artifactId>
  7. <version>2.3</version>
  8. <configuration>
  9. <descriptor>src/main/assembly/assembly.xml</descriptor>
  10. </configuration>
  11. <executions>
  12. <execution>
  13. <id>make-assembly</id>
  14. <phase>package</phase>
  15. <goals>
  16. <goal>single</goal>
  17. </goals>
  18. <configuration>
  19. <archive>
  20. <manifest>
  21. <mainClass>com.sample.TestMain</mainClass>
  22. </manifest>
  23. </archive>
  24. </configuration>
  25. </execution>
  26. </executions>
  27. </plugin>
  28. ...
  29. </plugins>
  30. </build>
  31. <dependencies>
  32. ...
  33. </dependencies>
  34. </project>

在resources中添加一个assembly.xml文件

  1. <assembly
  2. xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
  5. <id>fat-tests</id>
  6. <formats>
  7. <format>jar</format>
  8. </formats>
  9. <includeBaseDirectory>false</includeBaseDirectory>
  10. <dependencySets>
  11. <dependencySet>
  12. <outputDirectory>/</outputDirectory>
  13. <useProjectArtifact>true</useProjectArtifact>
  14. <unpack>true</unpack>
  15. <scope>test</scope>
  16. </dependencySet>
  17. </dependencySets>
  18. <fileSets>
  19. <fileSet>
  20. <directory>${project.build.directory}/test-classes</directory>
  21. <outputDirectory>/</outputDirectory>
  22. <includes>
  23. <include>**/*.class</include>
  24. </includes>
  25. <useDefaultExcludes>true</useDefaultExcludes>
  26. </fileSet>
  27. </fileSets>
  28. </assembly>

运行mvn package

在target目录下会生成一个xxxxx-1.0-SNAPSHOT-assembly.jar的文件,这就是我们需要的jar包了。我们可以用压缩软件看到生成的这个jar包中包含了test中所有的测试类。

可以直接使用java -jar xxxxx-1.0-SNAPSHOT-assembly.jar来运行jar包。主类就是第一步中设置的那个类

参考链接

maven打包跳过test

在pom.xml文件中添加插件

  1. <plugin>
  2. ? ? <groupId>org.apache.maven.plugins</groupId>
  3. ? ? <artifactId>maven-surefire-plugin</artifactId>
  4. ? ? <version>2.18.1</version>
  5. ? ? <configuration>
  6. ? ? <skipTests>true</skipTests>
  7. ? ? </configuration>
  8. </plugin>

使用mvn命令 带附加参数

  1. mvn install -Dmaven.test.skip=true

或者

  1. mvn install -DskipTests

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号