摘要:打包方式使用打包插件在文件最后新增以下代碼。表達式支持通配符打成一個包如果需要將依賴的包都達到一個包中運行,可以使用這個插件。
maven打包方式
使用maven打包插件maven-jar-plugin
在pom.xml文件最后新增以下代碼。
maven-dependency-plugin是指將依賴的jar包復制到指定目錄
maven-resources-plugin將依賴的resources復制到指定目錄
org.apache.maven.plugins maven-jar-plugin 2.6 true lib/ com.alibaba.dubbo.container.Main ${project.build.directory}/maven-archiver *.* config/* config/tencent/* META-INF/spring/* org.apache.maven.plugins maven-dependency-plugin 2.8 copy-dependencies package copy-dependencies ${project.build.directory}/maven-archiver/lib maven-resources-plugin copy-resources package copy-resources ${project.build.directory}/maven-archiver/resources ${basedir}/src/main/resources true
運行jar包方式
打包之后的目錄結(jié)構(gòu)
包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)
在MANIFEST.MF中包含了運行需要的信息
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
啟動命令
java -jar 執(zhí)行命令時,會用到目錄META-INFMANIFEST.MF中Main-Class的參數(shù),這個是在打包的時候指定函數(shù)的入口。
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
啟動命令
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
因為我工程中需要引用外部的resources文件所以我通常用這種方式啟動
配置文件地址是絕對路徑
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp和-classpath是相同的效果
java -cp 是指定運行所依賴其他類的路徑,通常是類庫、jar 包之類,多個依賴在Window 上用分號";"隔開,linux上用":"隔開。
表達式支持通配符
java -cp .:/Users/username/*.jar packname.mainclassname
打成一個jar包
如果需要將依賴的jar包都達到一個jar包中運行,可以使用maven-shade-plugin這個插件。
這個插件的功能主要是:將依賴的jar包打包到當前jar包,并且在打包的時候把類重命名,可以解決jar包的多版本沖突,具體可以查詢官方插件文檔。
參考文檔
maven官方插件文檔
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74353.html
Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,歡迎各位 Star。 目錄: 使用 SpringBoot+Dubbo 搭建一個簡單分布式服務(wù) 實戰(zhàn)之前,先來看幾個重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架構(gòu) 什么是 RPC? 為什么要用 Dubbo? 開始實戰(zhàn) 1 ...
摘要:本篇文章將介紹應(yīng)用如何打成包并將構(gòu)建為鏡像部署到中應(yīng)用打包需要配合打包將以下代碼放到應(yīng)用文件中執(zhí)行打打包命令命令執(zhí)行完成后在應(yīng)用目錄下會有打出來打包此包會包含應(yīng)用所有打依賴直接拷出這個包在命令行執(zhí)行應(yīng)用名就可以運行了構(gòu)建鏡像 本篇文章將介紹springboot應(yīng)用如何打成jar包,并將jar構(gòu)建為docker鏡像部署到docker中 應(yīng)用打包 需要配合spring-boot-mave...
摘要:從這里我們就可以看出,兩個,雖然都是包,但是內(nèi)部結(jié)構(gòu)是完全不同的,因此一個可以直接執(zhí)行,另一個則可以被其他項目依賴。一次打包兩個一般來說,直接打包成可執(zhí)行就可以了,不建議將作為普通的被其他的項目所依賴。 前兩天被人問到這樣一個問題: 松哥,為什么我的 Spring Boot 項目打包成的 jar ,被其他項目依賴之后,總是報找不到類的錯誤? 大伙有這樣的疑問,就是因為還沒搞清楚可執(zhí)行...
摘要:繼承作用就是避免配置重復,對于子項目來說應(yīng)該關(guān)心父項目是怎么樣配置的。聚合字面理解就是聚在一起合作完成工作,就是將子模塊聚集起來完成相應(yīng)的項目需求父工程的搭建項目結(jié)構(gòu)在父工程中,主要負責完成依賴的版本管理,并不是實際的依賴。 從大二開始就一直關(guān)注segmentFault,在問題專區(qū)幫忙回答一些自己知曉的問題;在寫這篇文章之前我一直會在朋友圈發(fā)一些自己遇到的問題以及解決辦法,這是第一次寫...
閱讀 1854·2021-11-25 09:43
閱讀 1493·2021-09-02 15:21
閱讀 3458·2019-08-30 15:52
閱讀 1505·2019-08-30 12:48
閱讀 1299·2019-08-30 10:57
閱讀 2933·2019-08-26 17:41
閱讀 683·2019-08-26 11:59
閱讀 1372·2019-08-26 10:41