前言
最近想把eclispe中的java項目做成可運行的jar文件,這樣就可以像用軟件一樣點擊直接使用了。不過,pom.xml要注意的細節很多,自己對Maven也不是很懂,實現這個想法遇到幾個坑,還好最後所有坑都跳過去了,記錄一下以免以後自己再次跳坑。
本文重點
- pom.xml的配置注意點
- 在控制檯生成可運行jar文件,以及調試的注意點
pom.xml的配置方法注意點
1.properties的配置:
我首先遇到問題就是如圖
出現這個問題原因就在於在properties的位置沒有加入你jdk版本,像下面這樣修改你的properties沒有問題了。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>(你係統的jdk版本)</maven.compiler.source>
<maven.compiler.target>(你係統的jdk版本)</maven.compiler.target>
</properties>
2.maven-shade-plugin的配置
通過Maven將項目導出成jar文件最關鍵是使用maven-shade-plugin這一插件,以下是我對這一插件的配置內容,測試多個項目都沒有問題。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.peerich.data.KitacoDataManager(把這段替換成你的主類名)</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Maven建立可運行的.jar文件
整個操作流程
1. 通過cmd控制檯進入項目的根目錄
2. 輸入mvn install命令
3. 進入項目的target文件夾
4. 輸入java -jar 你的.jar後綴文件名
遇到的問題:
1.包不存在:
這裏說明有需要的依賴包你需要配置在pom.xml文件中,直接搜索他給的包名加在pom.xml就行。
2.包有問題:
產生問題的原因暫時不清楚,但是處理方法倒是很簡單粗暴,把圖片中第二行“讀取…”到“…時出錯”中間的路徑複製一下,刪除那個.jar文件。不用擔心會出問題,因爲當你再次用上面的流程建立.jar文件的中途,這個.jar會被再次下載生成。一般刪除一次就會解決問題,如果再次出現同樣的問題可以再刪一次試一下,如果還是不行,那我也不知道爲啥了….
ps:整個流程建議都在控制檯完成,尤其最後一步,不要說生成了.jar文件了,就覺得大功告成了,其實是十分Naive的行爲,可能還有很多問題需要解決。一旦發現點擊.jar文件沒有反應,馬上用java -jar 你的.jar後綴文件名這個命令試一下看看是什麼問題。