欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven中利用assembly插件打包jar包

 更新時間:2021年12月31日 15:39:45   作者:KingWang_WHU  
本文詳細講解了Maven中利用assembly插件打包jar包的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在maven中有幾種方法打包項目,在之前的一篇博客中【Java】打包Jar包并用腳本執(zhí)行,已經(jīng)介紹了怎么在沒有maven插件的情況下,怎么打包項目,并執(zhí)行的。

而本篇則是在上一篇文章【Maven】Maven系列(一)——環(huán)境安裝配置和新建maven項目之后,總結一下怎么使用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,將對應的資源文件復制出來放到同生成的jar包文件同目錄下,以便運行jar包時候可以找到相應的資源。

4,利用java -jar命令運行jar包

1,在項目的pom.xml文件中添加一個標簽

<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標簽中的內(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包,里面包含了項目里用到的依賴項。

當然也會生成另外一個沒有包含依賴項的jar包。

3 部署項目

因為項目中還用到了很多資源文件,一些txt,properties文件等等,因此在部署的時候,還需要將這些文件存放在和jar包同路徑下(否則就會出現(xiàn)運行時資源找不到的異常)。這一點和【Java】打包Jar包并用腳本執(zhí)行里一樣,可以參照這一篇文章。

當然也可以編輯pom.xml文件中的內(nèi)容,打包時把資源文件一起打包進去,但是我們一些配置文件一般都是可能需要自己可以手動編輯的,如果打包到jar包中,就無法編輯了。

4 運行jar包

編寫一個bat命令文件,里面的內(nèi)容就是java -jar jar_name。

該命令文件也放在和jar同目錄下,點擊即可運行程序。

到此這篇關于Maven中利用assembly插件打包jar包的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java案例之HashMap集合存儲學生對象并遍歷

    Java案例之HashMap集合存儲學生對象并遍歷

    這篇文章主要介紹了Java案例之HashMap集合存儲學生對象并遍歷,創(chuàng)建一個HashMap集合,鍵是學號(String),值是學生對象(Student),存儲三個鍵值對元素并遍歷,下文具體操作需要的朋友可以參考一下
    2022-04-04
  • StateMachine 狀態(tài)機機制深入解析

    StateMachine 狀態(tài)機機制深入解析

    這篇文章主要介紹了,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • springboot自定義redis-starter的實現(xiàn)

    springboot自定義redis-starter的實現(xiàn)

    這篇文章主要介紹了springboot自定義redis-starter的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Java使用modbus-master-tcp實現(xiàn)modbus tcp通訊

    Java使用modbus-master-tcp實現(xiàn)modbus tcp通訊

    這篇文章主要為大家詳細介紹了另外一種Java語言的modbux tcp通訊方案,那就是modbus-master-tcp,文中的示例代碼講解詳細,需要的可以了解下
    2023-12-12
  • Java多態(tài)性定義與用法實例詳解

    Java多態(tài)性定義與用法實例詳解

    這篇文章主要介紹了Java多態(tài)性定義與用法,較為詳細的分析了多態(tài)的概念、功能以及java定義與實現(xiàn)面向對象多態(tài)性的相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • IDEA 自動生成 JPA 實體類的圖文教程

    IDEA 自動生成 JPA 實體類的圖文教程

    這篇文章主要介紹了IDEA 自動生成 JPA 實體類的圖文教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 使用Mybatis-Plus實現(xiàn)對象屬性自動填充功能

    使用Mybatis-Plus實現(xiàn)對象屬性自動填充功能

    這篇文章主要介紹了如何使用Mybatis-Plus實現(xiàn)對象屬性自動填充功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,感興趣的朋友們下面隨著小編來一起來學習吧
    2024-01-01
  • Java實現(xiàn)NIO聊天室的示例代碼(群聊+私聊)

    Java實現(xiàn)NIO聊天室的示例代碼(群聊+私聊)

    這篇文章主要介紹了Java實現(xiàn)NIO聊天室的示例代碼(群聊+私聊),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java使用5個線程計算數(shù)組之和

    Java使用5個線程計算數(shù)組之和

    本文主要介紹了Java使用5個線程計算數(shù)組之和,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • DoytoQuery中的關聯(lián)查詢方案示例詳解

    DoytoQuery中的關聯(lián)查詢方案示例詳解

    這篇文章主要為大家介紹了DoytoQuery中的關聯(lián)查詢方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論