詳解用maven將dubbo工程打成jar包運(yùn)行
maven打包方式
使用maven打包插件maven-jar-plugin
在pom.xml文件最后新增以下代碼。
maven-dependency-plugin是指將依賴(lài)的jar包復(fù)制到指定目錄
maven-resources-plugin將依賴(lài)的resources復(fù)制到指定目錄
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<!-- 是否依賴(lài)外部jar包 -->
<addClasspath>true</addClasspath>
<!-- 依賴(lài)外部jar包路徑 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- 啟動(dòng)函數(shù) --> <mainClass>com.alibaba.dubbo.container.Main</mainClass>
</manifest>
</archive>
<!-- 打包之后輸出目錄 -->
<outputDirectory>${project.build.directory}/maven-archiver</outputDirectory>
<!-- 剔除已打包的配置文件 -->
<excludes>
<exclude>*.*</exclude>
<exclude>config/*</exclude>
<exclude>config/tencent/*</exclude>
<exclude>META-INF/spring/*</exclude>
</excludes>
</configuration>
</plugin>
<!-- 拷貝依賴(lài)的jar包到lib目錄 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/maven-archiver/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 拷貝依賴(lài)的資源文件包到resources目錄 -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/maven-archiver/resources</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
運(yùn)行jar包方式
打包之后的目錄結(jié)構(gòu)
包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)

在MANIFEST.MF中包含了運(yùn)行需要的信息
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
啟動(dòng)命令
java -jar 執(zhí)行命令時(shí),會(huì)用到目錄META-INFMANIFEST.MF中Main-Class的參數(shù),這個(gè)是在打包的時(shí)候指定函數(shù)的入口。
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
啟動(dòng)命令
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
因?yàn)槲夜こ讨行枰猛獠康膔esources文件所以我通常用這種方式啟動(dòng)
配置文件地址是絕對(duì)路徑
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp和-classpath是相同的效果
java -cp 是指定運(yùn)行所依賴(lài)其他類(lèi)的路徑,通常是類(lèi)庫(kù)、jar 包之類(lèi),多個(gè)依賴(lài)在Window 上用分號(hào)";"隔開(kāi),linux上用":"隔開(kāi)。
表達(dá)式支持通配符
java -cp .:/Users/username/*.jar packname.mainclassname
打成一個(gè)jar包
如果需要將依賴(lài)的jar包都達(dá)到一個(gè)jar包中運(yùn)行,可以使用maven-shade-plugin這個(gè)插件。
這個(gè)插件的功能主要是:將依賴(lài)的jar包打包到當(dāng)前jar包,并且在打包的時(shí)候把類(lèi)重命名,可以解決jar包的多版本沖突,具體可以查詢(xún)官方插件文檔。
參考文檔
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring MVC學(xué)習(xí)教程之RequestMappingHandlerMapping匹配
這篇文章主要給大家介紹了關(guān)于Spring MVC學(xué)習(xí)教程之RequestMappingHandlerMapping匹配的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
使用IntelliJ IDEA 15和Maven創(chuàng)建Java Web項(xiàng)目(圖文)
本篇文章主要介紹了使用IntelliJ IDEA 15和Maven創(chuàng)建Java Web項(xiàng)目(圖文),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
redis分布式鎖RedissonLock的實(shí)現(xiàn)細(xì)節(jié)解析
這篇文章主要介紹了redis分布式鎖RedissonLock的實(shí)現(xiàn)細(xì)節(jié)解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Eclipse中導(dǎo)入Maven Web項(xiàng)目并配置其在Tomcat中運(yùn)行圖文詳解
這篇文章主要介紹了Eclipse中導(dǎo)入Maven Web項(xiàng)目并配置其在Tomcat中運(yùn)行圖文詳解,需要的朋友可以參考下2017-12-12
Java concurrency之AtomicReference原子類(lèi)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
AtomicReference是作用是對(duì)"對(duì)象"進(jìn)行原子操作。這篇文章主要介紹了Java concurrency之AtomicReference原子類(lèi),需要的朋友可以參考下2017-06-06
httpclient connect連接請(qǐng)求方法源碼解讀
這篇文章主要為大家介紹了httpclient connect連接請(qǐng)求方法解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringBoot整合Echarts實(shí)現(xiàn)數(shù)據(jù)大屏
這篇文章給大家介紹了三步實(shí)現(xiàn)SpringBoot全局日志記錄,整合Echarts實(shí)現(xiàn)數(shù)據(jù)大屏,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03

