0%

创建可运行 jar 应用

gradle, maven 都提供了现成的打 jar 功能

Maven

这里以 maven 为例,创建工程如下

1
2
3
4
5
6
.
├── java
│ └── com
│ └── jk
│ └── Main.java
└── resources
1
2
3
4
5
6
7
8
9
package com.jk;

public class Main {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("Index: " + i + ", Value: " + args[i]);
}
}
}

在 pom 文件中添加配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<build>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>com.jk.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>

</plugins>
</build>

终端输入命令:mvn package assembly:single, 运行后在 src 同级目录下会生产 target 文件夹,其中包含了对应的 jar 包, 选择带 with-dependencies 的那个

1
2
3
java -jar app-jar-1.0-SNAPSHOT-jar-with-dependencies.jar hello world 
Index: 0, Value: hello
Index: 1, Value: world

PS: 直接选 plugins -> assembly -> assembly:single 不 work,不是很了解为啥,需要系统学一下 maven 才知道