前言
? ? 如下簡單 maven 項目,現在 maven 項目比較流行,你還沒用過就OUT了。需要打包jar
? ?先設置:點擊 File ==> Project Structure ==> Artifacts ==> 點擊加號 ==> 選擇JAR ==> 選擇From modules with dependencies
一、將所有依賴和模塊代碼打包為一個jar
? ? 如果把所有項目依賴的其他庫和代碼打成一個 jar,可以選擇extract to the target JAR 。比如如果你項目里依賴了 fastjson.jar 等第三方 jar,可以把這些第三方 jar 也打到最終生成的 jar 里面。
1.選擇要打包的模塊和啟動類,然后選擇 extract to the target JAR 。
最后點擊 ok 設置完畢
2.確認要生成的 jar 名稱(默認是項目或模塊名),確認 jar 包的輸出的目錄,確認最終輸出的 jar 里包含的依賴(我這里包含了14個其他依賴和項目代碼,如果不想包含第三方依賴可以選中相關依賴點擊減號進行排除),點擊 Apply 和 Ok
3 . 點擊 Build ==> Build Artifacts
先點擊 clear 進行清除,然后再點擊 Build 進行構建,就可以打成一個jar包了
(如果不點擊 clear 進行清理上次的構建,直接點擊Build 進行構建的話,可能會把上次構建的東西打進去導致 jar 包變得比較大)
4.構建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了
二、只將模塊代碼打包為一個jar
? ? 如果你不想把所有項目依賴的其他庫和代碼都打成一個 jar,可以選擇copy to the output directory and link via manifest 。比如,如果你項目里依賴了 fastjson.jar 等第三方 jar,這些第三方 jar 不會被打到最終生成的jar里面,只會把這些依賴的 jar 和最終生成的 jar 輸出到一個目錄下。
1.先選擇你要打包的模塊和啟動類,然后選擇copy to the output directory and link via manifest ,點擊ok
2.確認要生成的 jar 名稱(默認是項目或模塊名),確認 jar 包的輸出的目錄,確認項目使用到的依賴,點擊 Apply 和 Ok
3.點擊 Build ==> Build Artifacts
? ? 一般先點擊 clear 進行清除,然后再點擊 Build 進行構建,就可以打成一個 jar 包了
(如果不點擊 clear 進行清理上次的構建,直接點擊Build 進行構建的話,可能會把上次構建的東西打進去導致 jar 包變得比較大)
4.構建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了,另外項目依賴的其他 jar 包也會輸出到這個目錄
三、也可以采用其他方法打包
? ? ?上面的方式是使用 java通行編輯器 IDEA?來打包,如果你使用的是 maven 項目,你也可以使用其他插件來打包。可以使用 spring-boot-maven-plugin 插件打包,還有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包。
? ? 使用 spring-boot-maven-plugin 插件打包: 在 pom.xml 中的 build 標簽下的 plugins 標簽下加入如下配置:
? ? ? ? ? ? <plugin>
? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId>
? ? ? ? ? ? ? ? <version>1.0.1-SNAPSHOT</version>
? ? ? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? ? ? <mainClass>com.example.cipherdemo</mainClass>
? ? ? ? ? ? ? ? ? ? <finalName>test</finalName>
?? ??? ??? ??? ??? ? <includes>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <include>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <artifactId>spring-boot-starter</artifactId>
? ? ? ? ? ? ? ? ? ? ? ? ? ? </include>
? ? ? ? ? ? ? ? ? ? ?</includes>
? ? ? ? ? ? ? ? </configuration>
? ? ? ? ? ? ? ? <executions>
? ? ? ? ? ? ? ? ? ? <execution>
? ? ? ? ? ? ? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>repackage</goal>
? ? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? ? </executions>
? ? ? ? ? ? </plugin>
? ? mainClass 標簽里是你的項目的啟動類的包路徑,如果你的項目沒有有啟動類也不需要通過 java -jar 運行的話可以刪除 mainClass
? ? finalName 標簽里的就是打出來的 jar 名,我這里是 XTool ,最終生成的就是 XTool.jar 。若不使用 finalName 指定,則打包生成的 jar 包名默認使用 pom.xml 文件里 artifactId 標簽和 version 標簽里的值作為 jar 的名。
? ? 如果最終生成的 jar 包不包含第三方依賴那直接用上面的插件配置即可。如果希望最終生成的 jar 包里包含第三方依賴那就刪除 includes 標簽及其里面的內容
? ? 在 IDEA?右邊側邊欄的 Maven 選項卡里點擊 Lifecyle 下的 package 就可以開始打包了,?最終生成的 jar 包就在 target 目錄下
JAR包使用:不用配置apache環境