Maven中利用assembly插件打包jar包
在maven中有幾種方法打包項目,在之前的一篇博客中【Java】打包Jar包并用腳本執(zhí)行,已經(jīng)介紹了怎么在沒有maven插件的情況下,怎么打包項目,并執(zhí)行的。
而本篇則是在上一篇文章【Maven】Maven系列(一)——環(huán)境安裝配置和新建maven項目之后,總結(jié)一下怎么使用maven插件進行打包項目。
maven中有多種插件提供了打包功能,分別是maven-jar-plugin(用來打包成jar包),maven-war-plugin(打包成war包)、maven-assembly-plugin。
這里只介紹怎么使用assembly插件打包項目成jar包。
主要有以下幾個步驟(前提是IDE中已經(jīng)有maven插件了)
1,配置pom.xml文件
2,執(zhí)行maven命令中的assembly:assembly命令進行打包
3,將對應(yīng)的資源文件復(fù)制出來放到同生成的jar包文件同目錄下,以便運行jar包時候可以找到相應(yīng)的資源。
4,利用java -jar命令運行jar包
1,在項目的pom.xml文件中添加一個標(biāo)簽
<plugin></plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.hey.main.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>如下是一個完整的pom.xml文檔:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ShareBike</groupId>
<artifactId>ShareBike</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>main.PushTrailVerticle</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>oracle12c</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>3.4.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.vividsolutions/jts -->
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
</project>上面的mainClass標(biāo)簽中的內(nèi)容替換成自己的main函數(shù)所在的類,前面要包含package名字,也就是package_name.MainClassName。
2,執(zhí)行打包命令
2.1 右擊選中項目的properties–>run as–>maven build….

2.2執(zhí)行assembly:assembly命令
在Main窗口下的Goals里填寫assembly:assembly,然后點擊run就可以了。

2.3 run之后就會在項目的target目錄下生成一個
項目名-版本號-with-dependencies的一個jar包,這個是個fat jar包,里面包含了項目里用到的依賴項。
當(dāng)然也會生成另外一個沒有包含依賴項的jar包。
3 部署項目
因為項目中還用到了很多資源文件,一些txt,properties文件等等,因此在部署的時候,還需要將這些文件存放在和jar包同路徑下(否則就會出現(xiàn)運行時資源找不到的異常)。這一點和【Java】打包Jar包并用腳本執(zhí)行里一樣,可以參照這一篇文章。
當(dāng)然也可以編輯pom.xml文件中的內(nèi)容,打包時把資源文件一起打包進去,但是我們一些配置文件一般都是可能需要自己可以手動編輯的,如果打包到j(luò)ar包中,就無法編輯了。
4 運行jar包
編寫一個bat命令文件,里面的內(nèi)容就是java -jar jar_name。
該命令文件也放在和jar同目錄下,點擊即可運行程序。
到此這篇關(guān)于Maven中利用assembly插件打包jar包的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java集合框架 arrayblockingqueue應(yīng)用分析
ArrayBlockingQueue是一個由數(shù)組支持的有界阻塞隊列。此隊列按 FIFO(先進先出)原則對元素進行排序。隊列的頭部 是在隊列中存在時間最長的元素2012-11-11
在非spring環(huán)境中調(diào)用service中的方法
非Spring環(huán)境指的是不使用Spring框架來管理和配置應(yīng)用程序的運行時環(huán)境,本文將給大家介紹如何在非spring環(huán)境中調(diào)用service中的方法,文中有詳細實現(xiàn)步驟,需要的朋友可以參考下2024-03-03
在SpringBoot下讀取自定義properties配置文件的方法
這篇文章主要介紹了在SpringBoot下讀取自定義properties配置文件的方法,文中涉及到了Spring-boot中讀取config配置文件的兩種方式,需要的朋友可以參考下2017-12-12
Java實現(xiàn)文件上傳的兩種方法(uploadify和Spring)
這篇文章主要為大家詳細介紹了Java實現(xiàn)文件上傳的兩種方法,uploadify和Spring實現(xiàn)文件上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
基于Java匯總Spock框架Mock靜態(tài)資源經(jīng)驗
這篇文章主要介紹了基于Java匯總Spock框架Mock靜態(tài)資源經(jīng)驗,前面講了?Spock框架Mock對象、方法經(jīng)驗總結(jié),今天分享一下Spock框架中Mock靜態(tài)資源的實踐經(jīng)驗匯總。分成靜態(tài)資源和混合場景,需要的朋友可以參考一下2022-02-02

