使用Maven將java項目導出成可運行.jar文件

前言

最近想把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後綴文件名這個命令試一下看看是什麼問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章