[精讚] [會員登入]
1260

【Maven】如何創建一個簡單可執行的JAR檔

滿重要的一個小功能,畢竟有時候是要傳遞的是JAR檔,而不是直接透過Maven直接部屬之類的

分享此文連結 //n.sfs.tw/15508

分享連結 【Maven】如何創建一個簡單可執行的JAR檔@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2022-03-30 23:29:37 最後編修
2021-11-27 00:00:39 By 過路君子
 

大家好,這裡是開始整理手上所有工具的小編過路君子

其實以前剛開始學Maven時小編有弄過,但不懂和不漂亮,所以當時就沒有發布上來了。

 

 

如果各位今天是要打包成 War檔的話可以參考小編這篇: 【Maven】如何創建一個簡單可部屬的WAR檔@小編過路君子

其實標準解法在 Maven的官網上面就有了,而且非常清楚,如果懶得看一堆字的可以直接前往這個網頁複製貼上。

最初最初小編是用 exec來達成這件事情,但現在觀念比較熟悉了,就放棄了 exec,直接採用官方提供的方法。

那既然要提到 Maven,第一件最重要的事情當然是先把整個目錄結構創建出來啦,直接上圖。

(所有圖片點擊都可以放大、變高清)

 

如何?製圖技術也有上升吧~想想上一篇是用純文字湊出來的呢。

言歸正傳,然後將以下的內容全部貼進去到 pom.xml裡面,大概只比官網多了「一點點」的東西:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>editor.passing.jinzan</groupId>
	<artifactId>packageJAR</artifactId>
	<version>1.0.0</version>

	<name>pixiJS-web Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<packaging>jar</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.2.4</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>editor.passing.jinzan.index</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<version>3.1.0</version>
			</plugin>
			
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<version>3.0.2</version>
			</plugin>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.1</version>
			</plugin>
			<plugin>
				<artifactId>maven-install-plugin</artifactId>
				<version>2.5.2</version>
			</plugin>
			<plugin>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8.2</version>
			</plugin>
			<plugin>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.7.1</version>
			</plugin>
			<plugin>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.0.0</version>
			</plugin>
		</plugins>
	</build>

</project>

 

然後接著打開位於 ./src/main/java/editor/passing/jinzan的 index.java檔案,同時將以下的程式碼貼入 index.java裡面。

package editor.passing.jinzan;

public class index
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!");
    }
}

 

然後下個簡單的指令將其打包。

Linux mvn package

 

然後嘗試執行看看有沒有 "Hello World!" 字樣,如果有,恭喜各位,一切正常,可以開始在 index.java裡面撰寫您個人所需的程式碼了。

Linux java -jar target/packageJAR-1.0.0.jar

 

 

 

後記

哇喔,超級飆火車,但是說真的這就是使用 Maven的好處,就只要告訴對方目錄結構和 pom.xml檔案就可以執行出完完全全一模一樣的結果。

順帶一提,index.java裡面的 "public static void main(String[] args)" 這行不能寫成其他的樣子,打包的時候沒問題,但一執行就會出錯。

END

你可能感興趣的文章

【JDA/discord bot】package does not exist fix JDA 4.0 和 5.0 差別還是很大的

【教程】(進階版)如何用Sigil製作一本高質量的epub 下載好了Sigil之後除了直接把文字貼進去以外,還有:變更字型、著色、導入CSS……等等功能,不知道你有沒有發現呢?

【CoreProtect】自行升級至 Minecraft 1.21.x、1.22.x 或更高版本 不知道為什麼,官方竟然無預警停止更新,我們只好自行救濟

【Raspberry Pi/樹梅派】(gcc 10) 如何安裝 gcc & g++ 需要的時間非常久,不愧是gcc的編譯

【Wildfly/jBoss】[Linux](Connection Datasource)如何與MySQL資料庫建立連線 網頁瀏覽器和資料庫的關係密不可分,而通常會將兩者分開架設在不同的伺服器上面來提供服務,這時要如何進行連線呢?

【Maven】[Wicket](Java) 如何部署Wicket到Wildfly內 Wicket 是一個 Java 下的套件,換言之,我們的網頁伺服器後端是由 Java 來撰寫的

隨機好文

婕兒──她的青春④ 「投降吧,耐耐!這回合妳將不會再有獲勝的機會了!哈哈哈哈!」 「妳確定?」耐耐臉上泛起一絲微笑,並將手中的牌展示給婕兒看 婕兒的笑容僵住了。恐懼浮現在她的臉。

【想法】關於網路上的謾罵這檔事 網路是個自由的世界,每個人都享有平等的發言權,但是,請永遠記得,在網路上漫罵別人一定會留下證據的,就算之後刪文,你怎能確保對方沒有截圖存證?

【英翻中歌詞】(二創歌)東方妖妖夢-人形裁判 ~玩弄人偶的少女 人形裁判 ~ 人の形弄びし少女 很久很久以前,在一個神奇的異地,住著一位少女,十分惹人憐愛 她的皮膚就像陶瓷一樣潔白,眼睛就像藍色寶珠般明亮

艾米莉亞和高捷戀旅② 七點三十五分了。 「快到粉絲團!快!」小穹慌張地說,婕兒、耐耐也湊向手機。雖然她們沒有報名,不過也希望亦晨參賽,不免著急起來。 「亦晨?妳的報名序號是多少?」艾米快速滑動手機。合格的參賽者姓名和序號都

【數學】徐氏數學簡明講義(三) 第二章 直線與園 P2.1-15 Q12 12.已知聯立方程式恰有一解(x,y) = (1,2),   則的解為(x,y) = ? 解: