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

今天有人问我打包后找不到主类,运行的类写在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插件时,有一些东西需要按照实际情况进行更改,比如主类入口,配置文件路径

猜你喜欢

转载自www.cnblogs.com/lingzhigege/p/11104182.html