記錄一次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插件時,有一些東西需要按照實際情況進行更改,比如主類入口,配置文件路徑

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章