使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中
maven將項(xiàng)目的test代碼打包進(jìn)jar中
項(xiàng)目結(jié)構(gòu)如下:
…/src/main/java/package/** <– application code
…/src/test/java/package/** <– test code
需求:
test中有一個(gè)包含main方法的主類TestMain.java,將main、test、全部依賴代碼打包到一個(gè)jar包中,最終能通過java -jar的方式運(yùn)行TestMain
這里Maven Jar Plugin 、 Maven Shade Plugin 都不是很適用。
我們選擇Maven Assembly Plugin來打包
三步實(shí)現(xiàn):
在pom中添加如下
<project> ... <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.3</version> <configuration> <descriptor>src/main/assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>com.sample.TestMain</mainClass> </manifest> </archive> </configuration> </execution> </executions> </plugin> ... </plugins> </build> <dependencies> ... </dependencies> </project>
在resources中添加一個(gè)assembly.xml文件
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> <id>fat-tests</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <outputDirectory>/</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>true</unpack> <scope>test</scope> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.build.directory}/test-classes</directory> <outputDirectory>/</outputDirectory> <includes> <include>**/*.class</include> </includes> <useDefaultExcludes>true</useDefaultExcludes> </fileSet> </fileSets> </assembly>
運(yùn)行mvn package
在target目錄下會生成一個(gè)xxxxx-1.0-SNAPSHOT-assembly.jar的文件,這就是我們需要的jar包了。我們可以用壓縮軟件看到生成的這個(gè)jar包中包含了test中所有的測試類。
可以直接使用java -jar xxxxx-1.0-SNAPSHOT-assembly.jar來運(yùn)行jar包。主類就是第一步中設(shè)置的那個(gè)類
maven打包跳過test
在pom.xml文件中添加插件
<plugin> ? ? <groupId>org.apache.maven.plugins</groupId> ? ? <artifactId>maven-surefire-plugin</artifactId> ? ? <version>2.18.1</version> ? ? <configuration> ? ? <skipTests>true</skipTests> ? ? </configuration> </plugin>
使用mvn命令 帶附加參數(shù)
mvn install -Dmaven.test.skip=true
或者
mvn install -DskipTests
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java?Object的hashCode方法的計(jì)算邏輯分析
這篇文章主要介紹了java?Object的hashCode方法的計(jì)算邏輯分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot密碼加密的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot密碼加密的實(shí)現(xiàn)示例,包括引入依賴、配置加密工具、生成加密密鑰、加密密碼、配置解密,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08java web個(gè)人通訊錄系統(tǒng)設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了java web個(gè)人通訊錄系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01JAVA 實(shí)現(xiàn)二叉樹(鏈?zhǔn)酱鎯Y(jié)構(gòu))
本篇文章主要介紹用JAVA 實(shí)現(xiàn)二叉樹,并提供實(shí)例.對二叉樹數(shù)據(jù)結(jié)構(gòu)很好的學(xué)習(xí)實(shí)踐,有需要的朋友可以參考下2016-07-07