记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用

摘要:
今天,有人问我,打包后找不到主类,运行类是在测试中编写的。通常,测试目录中的文件不会打包在jar包中(但我可以测试一个spring-boot项目。我稍后会研究它。)第一步是将MavenAssemblyPlugin插件引入pom文件中。(注意:如果有其他打包插件,最好先消除干扰。)12maven汇编插件˂/artifa

今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究)

具体解决如下

第一步:在pom文件中引入Maven Assembly Plugin插件 (注意:如果含有其他打包插件,最好先排除掉干扰)

复制代码
 1             <plugin>
 2                 <artifactId>maven-assembly-plugin</artifactId>
 3                 <version>2.3</version>
 4                 <configuration>
 5                     <descriptor>src/main/resources/assembly.xml</descriptor>
 6                 </configuration>
 7                 <executions>
 8                     <execution>
 9                         <id>make-assembly</id>
10                         <phase>package</phase>
11                         <goals>
12                             <goal>single</goal>
13                         </goals>
14                         <configuration>
15                             <archive>
16                                 <manifest>
17                                     <mainClass>com.lingzhi.jedis.JedisTest</mainClass>
18                                 </manifest>
19                             </archive>
20                         </configuration>
21                     </execution>
22                 </executions>
23             </plugin>
24 
25         </plugins>
26     </build>
复制代码

第二步:在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>
复制代码

第三步,maven 打包

记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用第5张

结果如上图,有两个jar包,其中下面这个就是包括test的,上面是默认情况

在配置文件中引入assembly插件时,有一些东西需要按照实际情况进行更改,比如主类入口,配置文件路径

记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用第6张

打包并测试

执行maven命令:

mvn clean compile test-compile assembly:single

运行jar包:

java -jar test-1.0-assembly.jar

免责声明:文章转载自《记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jquery 修改 bootstrap模态框的宽度并且居中webpack4.x 从零开始配置vue 项目(一)基础搭建项目下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Zookeeper权限控制

Zookeeper提供了ACL(Access Control List)权限控制。 使用权限控制,可以控制节点的操作权限,保证安全性。 权限设置:将权限模式、授权对象、权限信息组成一条"scheme:id:permission"格式的ACL请求信息。 权限模式(Scheme):   1)World模式,默认的,任何人可以对zk上任意节点操作   2)IP模...

go mod

golang 终于出官方版本管理机制,名为 go modules 初体验 使用前: # 先升级 golang 到 1.11 版本,然后 export GO111MODULE=on 在项目github.com/humboldt-xie/test-mod下,通过go mod init go mod init 然后会在当前项目目录下出现 go.mod 文件,内容...

Qt 单元测试

    使用Qtcreator 自带的单元测试工具框架QTestlib进行测试。 一.创建一个单元测试程序 new project->other project ->Qt unit test 二.文件列表: qtestlib/tutorial1/testqstring.cpp qtestlib/tutorial1/tutorial1.pro...

Reactor 3 学习笔记(2)

接上篇继续学习各种方法: 4.9、reduce/reduceWith @Test public void reduceTest() { Flux.range(1, 10).reduce((x, y) -> x + y).subscribe(System.out::println); Flux.ra...

java/jsp获取当前路径的几种方法

本文结合个人实验与网上资料整合@http://blog.csdn.net/snannan_268/article/details/5511614 String path = new File(application.getRealPath(request.getServletPath() )).getParent();   //路径获取jsp文件绝对路径...

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志、命令行参数。 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备。ns-3并非一个专门的因特网模拟器,而是一个网络模拟器。为此不采用术语“主机”,因为这个词太容易让人联想到因特网以及相关协议。因此,选用其他术语:节点。 可以将节点理...