菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
110
0

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

原创
05/13 14:22
阅读数 19814

今天有人问我打包后找不到主类,运行的类写在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 打包

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

 

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

 

 

打包并测试

执行maven命令:

mvn clean compile test-compile assembly:single

运行jar包:

java -jar test-1.0-assembly.jar

发表评论

0/200
110 点赞
0 评论
收藏