Skip to content

Commit d268c87

Browse files
author
jacky
committed
init
1 parent a8881c6 commit d268c87

17 files changed

Lines changed: 696 additions & 0 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea/
2+
target/
3+
*.iml

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# package to executable jar
2+
3+
java 打包成可执行jar的几种方式,打包结果可以 `java -jar xxx.jar` 运行。记录下来以备后用。
4+
5+
## simple
6+
`mvn clean package`
7+
没有依赖,没有配置。
8+
## with dependency
9+
`mvn clean package`
10+
有依赖,将依赖打包到 `libs` 目录。
11+
## with resources
12+
`mvn clean package`
13+
有配置,将配置文件打包到跟目录。
14+
## with dependency and resources
15+
`mvn clean package`
16+
前两项的综合体,将依赖打包到`libs` 同时配置打包到跟目录。
17+
## spring boot
18+
spring boot 打包方式。源码直接运行 `mvn spring-boot:run` , 打包`mvn clean package`。 打包后可直接用 `java -jar xxx.jar` 运行。
19+
20+
## assembly
21+
`mvn clean package assembly:single`
22+
23+
打包成一个独立可执行文件 `xxx-with-dependencies.jar`。 配置 assembly/distribution.xml 将 jar和配置一起打包成 zip。
24+
25+
26+
`java -jar xxx.jar` for run.
27+

pom-assembly.xml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.springframework.boot</groupId>
8+
<artifactId>spring-boot-starter-parent</artifactId>
9+
<version>2.1.4.RELEASE</version>
10+
<relativePath/> <!-- lookup parent from repository -->
11+
</parent>
12+
<groupId>com.jk.test.excutablejar</groupId>
13+
<artifactId>executejar</artifactId>
14+
<version>1.0-SNAPSHOT</version>
15+
16+
<properties>
17+
<java.version>1.8</java.version>
18+
</properties>
19+
20+
<dependencies>
21+
<dependency>
22+
<groupId>org.springframework.boot</groupId>
23+
<artifactId>spring-boot-starter-web</artifactId>
24+
</dependency>
25+
<dependency>
26+
<groupId>com.alibaba</groupId>
27+
<artifactId>fastjson</artifactId>
28+
<version>1.2.47</version>
29+
</dependency>
30+
</dependencies>
31+
<build>
32+
<plugins>
33+
<plugin>
34+
<groupId>org.apache.maven.plugins</groupId>
35+
<artifactId>maven-compiler-plugin</artifactId>
36+
<configuration>
37+
<source>${java.version}</source>
38+
<target>${java.version}</target>
39+
</configuration>
40+
</plugin>
41+
42+
<plugin>
43+
<groupId>org.apache.maven.plugins</groupId>
44+
<artifactId>maven-assembly-plugin</artifactId>
45+
<version>3.1.1</version>
46+
<configuration>
47+
<descriptors>
48+
<descriptor>src/assembly/distribution.xml</descriptor>
49+
</descriptors>
50+
</configuration>
51+
<executions>
52+
<execution>
53+
<id>make-assembly</id>
54+
<phase>package</phase>
55+
<goals>
56+
<goal>single</goal>
57+
</goals>
58+
<configuration>
59+
<descriptorRefs>
60+
<descriptorRef>jar-with-dependencies</descriptorRef>
61+
</descriptorRefs>
62+
<archive>
63+
<manifest>
64+
<mainClass>com.jk.test.excutablejar.WithDepRes</mainClass>
65+
</manifest>
66+
</archive>
67+
</configuration>
68+
</execution>
69+
</executions>
70+
</plugin>
71+
72+
</plugins>
73+
</build>
74+
</project>

pom-simple.xml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.jk.test.excutablejar</groupId>
8+
<artifactId>executejar</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
<packaging>jar</packaging>
11+
<dependencies>
12+
<dependency>
13+
<groupId>com.alibaba</groupId>
14+
<artifactId>fastjson</artifactId>
15+
<version>1.2.47</version>
16+
</dependency>
17+
</dependencies>
18+
<build>
19+
<plugins>
20+
<plugin>
21+
<groupId>org.apache.maven.plugins</groupId>
22+
<artifactId>maven-jar-plugin</artifactId>
23+
<version>3.0.2</version>
24+
<configuration>
25+
<archive>
26+
<manifest>
27+
<mainClass>com.jk.test.excutablejar.Simple</mainClass>
28+
</manifest>
29+
</archive>
30+
</configuration>
31+
</plugin>
32+
</plugins>
33+
</build>
34+
</project>

pom-spring-boot.xml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.springframework.boot</groupId>
8+
<artifactId>spring-boot-starter-parent</artifactId>
9+
<version>2.1.4.RELEASE</version>
10+
<relativePath/> <!-- lookup parent from repository -->
11+
</parent>
12+
<groupId>com.jk.test.excutablejar</groupId>
13+
<artifactId>executejar</artifactId>
14+
<version>1.0-SNAPSHOT</version>
15+
16+
<properties>
17+
<java.version>1.8</java.version>
18+
</properties>
19+
20+
<dependencies>
21+
<dependency>
22+
<groupId>org.springframework.boot</groupId>
23+
<artifactId>spring-boot-starter-web</artifactId>
24+
</dependency>
25+
<dependency>
26+
<groupId>com.alibaba</groupId>
27+
<artifactId>fastjson</artifactId>
28+
<version>1.2.47</version>
29+
</dependency>
30+
</dependencies>
31+
<build>
32+
<!--excludes resource from classes and jar-->
33+
<resources>
34+
<resource>
35+
<directory>src/main/resources</directory>
36+
<excludes>
37+
<exclude>*.properties</exclude>
38+
</excludes>
39+
</resource>
40+
</resources>
41+
<plugins>
42+
<plugin>
43+
<groupId>org.apache.maven.plugins</groupId>
44+
<artifactId>maven-compiler-plugin</artifactId>
45+
<configuration>
46+
<source>${java.version}</source>
47+
<target>${java.version}</target>
48+
</configuration>
49+
</plugin>
50+
<!--output resource to root-->
51+
<plugin>
52+
<artifactId>maven-resources-plugin</artifactId>
53+
<executions>
54+
<execution>
55+
<id>copy-resources</id>
56+
<phase>package</phase>
57+
<goals>
58+
<goal>copy-resources</goal>
59+
</goals>
60+
<configuration>
61+
<outputDirectory>${project.build.directory}/</outputDirectory>
62+
<resources>
63+
<resource>
64+
<directory>src/main/resources</directory>
65+
<filtering>true</filtering>
66+
</resource>
67+
</resources>
68+
</configuration>
69+
</execution>
70+
</executions>
71+
</plugin>
72+
73+
<plugin>
74+
<groupId>org.springframework.boot</groupId>
75+
<artifactId>spring-boot-maven-plugin</artifactId>
76+
<configuration>
77+
<addResources>true</addResources>
78+
</configuration>
79+
</plugin>
80+
</plugins>
81+
</build>
82+
</project>

pom-withRes.xml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.jk.test.excutablejar</groupId>
8+
<artifactId>executejar</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
<packaging>jar</packaging>
11+
<dependencies>
12+
<dependency>
13+
<groupId>com.alibaba</groupId>
14+
<artifactId>fastjson</artifactId>
15+
<version>1.2.47</version>
16+
</dependency>
17+
</dependencies>
18+
<build>
19+
<!--excludes res from classes and jar-->
20+
<resources>
21+
<resource>
22+
<directory>src/main/resources</directory>
23+
<excludes>
24+
<exclude>*.properties</exclude>
25+
</excludes>
26+
</resource>
27+
</resources>
28+
<plugins>
29+
<plugin>
30+
<groupId>org.apache.maven.plugins</groupId>
31+
<artifactId>maven-compiler-plugin</artifactId>
32+
<configuration>
33+
<source>1.8</source>
34+
<target>1.8</target>
35+
</configuration>
36+
</plugin>
37+
<!--output to customer dir-->
38+
<plugin>
39+
<artifactId>maven-resources-plugin</artifactId>
40+
<version>3.0.2</version>
41+
<executions>
42+
<execution>
43+
<id>copy-resources</id>
44+
<phase>package</phase>
45+
<goals>
46+
<goal>copy-resources</goal>
47+
</goals>
48+
<configuration>
49+
<outputDirectory>${project.build.directory}/</outputDirectory>
50+
<resources>
51+
<resource>
52+
<directory>src/main/resources</directory>
53+
<filtering>true</filtering>
54+
</resource>
55+
</resources>
56+
</configuration>
57+
</execution>
58+
</executions>
59+
</plugin>
60+
<plugin>
61+
<groupId>org.apache.maven.plugins</groupId>
62+
<artifactId>maven-jar-plugin</artifactId>
63+
<version>3.0.2</version>
64+
<configuration>
65+
<archive>
66+
<manifest>
67+
<mainClass>com.jk.test.excutablejar.WithRes</mainClass>
68+
</manifest>
69+
</archive>
70+
</configuration>
71+
</plugin>
72+
73+
</plugins>
74+
</build>
75+
</project>

pom-withdep-res.xml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.jk.test.excutablejar</groupId>
8+
<artifactId>executejar</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
<packaging>jar</packaging>
11+
<dependencies>
12+
<dependency>
13+
<groupId>com.alibaba</groupId>
14+
<artifactId>fastjson</artifactId>
15+
<version>1.2.47</version>
16+
</dependency>
17+
</dependencies>
18+
<build>
19+
<!--excludes res from classes and jar-->
20+
<resources>
21+
<resource>
22+
<directory>src/main/resources</directory>
23+
<excludes>
24+
<exclude>*.properties</exclude>
25+
</excludes>
26+
</resource>
27+
</resources>
28+
<plugins>
29+
<plugin>
30+
<groupId>org.apache.maven.plugins</groupId>
31+
<artifactId>maven-compiler-plugin</artifactId>
32+
<configuration>
33+
<source>1.8</source>
34+
<target>1.8</target>
35+
</configuration>
36+
</plugin>
37+
<!--output to customer dir-->
38+
<plugin>
39+
<artifactId>maven-resources-plugin</artifactId>
40+
<version>3.0.2</version>
41+
<executions>
42+
<execution>
43+
<id>copy-resources</id>
44+
<phase>package</phase>
45+
<goals>
46+
<goal>copy-resources</goal>
47+
</goals>
48+
<configuration>
49+
<outputDirectory>${project.build.directory}/</outputDirectory>
50+
<resources>
51+
<resource>
52+
<directory>src/main/resources</directory>
53+
<filtering>true</filtering>
54+
</resource>
55+
</resources>
56+
</configuration>
57+
</execution>
58+
</executions>
59+
</plugin>
60+
61+
<plugin>
62+
<groupId>org.apache.maven.plugins</groupId>
63+
<artifactId>maven-jar-plugin</artifactId>
64+
<version>3.0.2</version>
65+
<configuration>
66+
<archive>
67+
<manifest>
68+
<addClasspath>true</addClasspath>
69+
<classpathPrefix>libs/</classpathPrefix>
70+
<mainClass>com.jk.test.excutablejar.WithDep</mainClass>
71+
</manifest>
72+
</archive>
73+
</configuration>
74+
</plugin>
75+
<plugin>
76+
<groupId>org.apache.maven.plugins</groupId>
77+
<artifactId>maven-dependency-plugin</artifactId>
78+
<executions>
79+
<execution>
80+
<id>copy-dependencies</id>
81+
<phase>prepare-package</phase>
82+
<goals>
83+
<goal>copy-dependencies</goal>
84+
</goals>
85+
<configuration>
86+
<outputDirectory>
87+
${project.build.directory}/libs
88+
</outputDirectory>
89+
</configuration>
90+
</execution>
91+
</executions>
92+
</plugin>
93+
94+
</plugins>
95+
</build>
96+
</project>

0 commit comments

Comments
 (0)