IDEA+gradle將springBoot專案打可執行的Jar包
IDEA+gradle將springBoot專案打可執行的Jar包
IDEA也是最近才使用,之前一直用Eclipse
gradle也是最近在使用,之前一直用maven
剛使用新的工具總和初學者一樣會遇到一些問題,就像是打包這個小事,之前用eclipse+maven特別簡單,換了新的IDEA+Gradle各種不適應,打不出可以執行的jar包。去網上找了很我文章不是版本對不上就是說的不透徹;
本文用的是IntelliJ IDEA 2018.2.5 x64。廢話有點多,接下來開始幹活。
首先你要有SpringBoot或是SpringCloud專案
又是廢話,看這篇文章的人基本上都是有專案打不出包的,那就不說建立專案的過程了。
我用的是一個SpringCloud的demo專案。
拿其中一個專案打包做例子hpt-sso,hpt-sso引用了hpt-base,打包時我會把hpt-base.jar也打進去。
步驟:
-
使用快捷鍵盤ctrl+shift+alt+s ,開啟打包的介面。
-
點選Artifacts,再點選加號(+);點選JAR,選擇From modules with dependencies…;
在這裡插入圖片描述 -
選擇Module,就是你要打包成jar的專案,選擇MainClass,就是你JAR中要執行的Main方法,JAR files from libraries我選擇第2項copy to the output directory and link via manifest,因為我新增依賴包的目錄,依賴包在jar包的外面(lib目錄與hpt-sso.jar同級);選擇META-INF/MANIFEST.ME的目錄,該目錄下不能有META-INF/MANIFEST.ME,如果有就刪除掉,不然已存在會建立失敗;最後點選OK
-
點開“Available Elements”中你要打包的專案,右擊中你的專案名_main,點選Put into Output Root
這時我們看到
“hpt-base_main”,這是引用專案的(沒有引用專案的沒這個),因為我等下要引用htp-base.jar這裡我可以先把它刪除掉,不然等下可能把引用專案的class檔案也打包進來了,這樣hpt-base.jar和hpt-base下的所有class並存沒必要。
“hpt-sso_main”,這是hpt-sso專案的所有class檔案,這肯定要保留
除此之外還有很多我們要打包專案所依賴的第三方JAR包。 -
接下來我們在output root下建立一個lib資料夾,然後把所有jar包放到lib下,移動lib的時候可以用shift多選lib,然後用右鍵拖到lib目錄下(注:左鍵只能拖一個),不要把我們的主jar包也放進去,hpt-sso.jar要跟lib同級;
-
引用專案的包:如果有引用專案,可以新增引用專案的包,比如hpt-base.jar這個包是我之前像這篇文章一樣建立好的,我們可以在右邊的Artifacts中選擇,雙擊就到左邊來了,一樣別忘了拖到lib目錄下。(沒有引用專案這步就可以省略了)
-
新增配置檔案,右擊你要最終打包的jar名(hpt-sso.jar) -> +Add Copy of -> Directory Content,開啟新視窗
選擇專案中的配置檔案目錄(resources),點選OK
最終我們得到一個如下結構的目錄
-
編輯Class Path,將lib下的引用包放到Edit Classpath中,別忘記在包前加上lib/。如果引用jar包較多可以shift選中lib下的所有包複製到記事本或其它編輯器中編輯完再貼上到Edit Classpath框中。我使用的是Excel編輯的。最後點選OK就完成了所有jar包打包的準備工作。
-
打包 使用Build–>Build Artifacts,選擇你要build的jar點選build,打包完成去輸出目錄下檢視結果輸出目錄在
檢視目錄結構,lib下有我們所有的引用jar包;
用解壓工具開啟htp-sso.jar檢視目錄結構:正常,配置檔案application.yml也存在;
檢視META-IN\MANIFEST.MF內容,都正常,這樣打包就成功了。
12. 執行 用cmd命令,進入jar包所在目錄,執行命令:java -jar xxx.jar,專案執行成功。
最後:IDEA+GRADLE打個可執行的jar包挺麻煩的。
再最後:整體結束,形成一篇文章好累啊。
再再最後:一遍操作成功,後面再操作就簡單了,這個打包自由配置度很靈活,能打出自己想要的jar包中的內容,付出的代價就是複雜點,要自己配置。
最後一個最後:如果idea能有個預設的傻瓜一鍵打jar包就好了,再有這個靈活配置,二者並存,完美。
此文寫了有半年了,是初學時的打包痛點。
傻瓜一鍵打jar就是bootJar這個外掛。很簡單。祝大家學習愉快。
相關文章
- IDEA打可執行的jar包IdeaJAR
- Maven專案打jar包MavenJAR
- java 生成可執行jar包JavaJAR
- 如何使用Maven將專案中的依賴打進jar包MavenJAR
- springboot 執行 jar 包讀取外部配置檔案Spring BootJAR
- java-maven生成可執行的 jar 包JavaMavenJAR
- 深入Jar包:Gradle構建可執行jar包與訪問jar包中資料夾與檔案JARGradle
- Idea匯出可執行Jar包IdeaJAR
- Maven打包springboot框架的可執行的jarMavenSpring Boot框架JAR
- idea執行專案報錯找不到jar包IdeaJAR
- springboot專案打war包流程Spring Boot
- maven 打包可執行 jar 檔案MavenJAR
- 徹底透析SpringBoot jar可執行原理Spring BootJAR
- IDEA中MAVEN專案打JAR包的簡單方法IdeaMavenJAR
- Intellij Idea 將java專案打包成jar,cmd執行該jarIntelliJIdeaJavaJAR
- 怎麼生成可執行的.jar檔案???????????JAR
- 將一個帶有main方法的jar生成為可執行jarAIJAR
- 06、使用Gradle構建的專案如何打jar包和war包GradleJAR
- 使用原生Java程式碼生成可執行Jar包JavaJAR
- springboot將jsp打包成jar執行的坑Spring BootJSJAR
- 【SpringBoot】三十二、SpringBoot專案Jar包如何瘦身部署Spring BootJAR
- springboot jar包執行中獲取資原始檔Spring BootJAR
- 把可執行jar打包成exe檔案JAR
- jar命令打包與java執行jar包JARJava
- Springboot 打jar包分離lib,配置檔案正確方式Spring BootJAR
- 用Maven快速生成帶有依賴的可執行jar包MavenJAR
- java打jar包的maven方式JavaJARMaven
- Jar 包執行時修改配置JAR
- 【Maven】構建可執行JarMavenJAR
- Springboot 獲取jar包中的檔案Spring BootJAR
- Spark2 檔案處理和jar包執行SparkJAR
- Linux jar包 後臺執行LinuxJAR
- linux系統中怎麼中執行jar包?linux系統中執行jar包的方法LinuxJAR
- springboot的jar為何能獨立執行Spring BootJAR
- jenkins 執行可執行jar包測試中,請求亂碼解決辦法JenkinsJAR
- Maven 專案引入本地 jar 包方法MavenJAR
- maven專案引進本地jar包MavenJAR
- Spring Boot 打包成的可執行 jar ,為什麼不能被其他專案依賴?Spring BootJAR