第一種:可執行jar與依賴分開,依賴在lib目錄里,需要jar和lib目錄在同級目錄,
優點:jar文件很小
缺點:需要放置lib文件夾在平級目錄
第二種:把所有依賴打進同一個jar包里。
缺點:jar文件會比較大,同時該插件有個bug會缺失spring的xds文件,導致無法運行jar,同時如果同級目錄還有其它可執行jar文件依賴可能會產生沖突
優點:方便快捷,打包完直接就能運行。
第三種:所有依賴打到同一個jar文件里。
缺點:jar文件過大、如果同級目錄有其它可執行jar,依賴可能會產生沖突
優點:不會有任何bug,直接打成可執行jar文件,最省事。
優點:jar文件很小
缺點:需要放置lib文件夾在平級目錄
1
<plugin>
2
<groupId>org.apache.maven.plugins</groupId>
3
<artifactId>maven-jar-plugin</artifactId>
4
<version>2.6</version>
5
<configuration>
6
<archive>
7
<manifest>
8
<addClasspath>true</addClasspath>
9
<classpathPrefix>lib/</classpathPrefix>
10
<mainClass>com.xxx.xxxService</mainClass>
11
</manifest>
12
</archive>
13
</configuration>
14
</plugin>
15
<plugin>
16
<groupId>org.apache.maven.plugins</groupId>
17
<artifactId>maven-dependency-plugin</artifactId>
18
<version>2.10</version>
19
<executions>
20
<execution>
21
<id>copy-dependencies</id>
22
<phase>package</phase>
23
<goals>
24
<goal>copy-dependencies</goal>
25
</goals>
26
<configuration>
27
<outputDirectory>${project.build.directory}/lib</outputDirectory>
28
</configuration>
29
</execution>
30
</executions>
31
</plugin>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

第二種:把所有依賴打進同一個jar包里。
缺點:jar文件會比較大,同時該插件有個bug會缺失spring的xds文件,導致無法運行jar,同時如果同級目錄還有其它可執行jar文件依賴可能會產生沖突
優點:方便快捷,打包完直接就能運行。
1
<plugin>
2
<artifactId>maven-assembly-plugin</artifactId>
3
<configuration>
4
<descriptorRefs>
5
<descriptorRef>jar-with-dependencies</descriptorRef>
6
</descriptorRefs>
7
<archive>
8
<manifest>
9
<mainClass>com.xxx.xxxService</mainClass>
10
</manifest>
11
</archive>
12
</configuration>
13
<executions>
14
<execution>
15
<id>make-assembly</id>
16
<phase>package</phase>
17
<goals>
18
<goal>single</goal>
19
</goals>
20
</execution>
21
</executions>
22
</plugin>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

第三種:所有依賴打到同一個jar文件里。
缺點:jar文件過大、如果同級目錄有其它可執行jar,依賴可能會產生沖突
優點:不會有任何bug,直接打成可執行jar文件,最省事。
1
<plugin>
2
<groupId>org.apache.maven.plugins</groupId>
3
<artifactId>maven-shade-plugin</artifactId>
4
<version>2.4.3</version>
5
<executions>
6
<execution>
7
<phase>package</phase>
8
<goals>
9
<goal>shade</goal>
10
</goals>
11
<configuration>
12
<filters>
13
<filter>
14
<artifact>*:*</artifact>
15
<excludes>
16
<exclude>META-INF/*.SF</exclude>
17
<exclude>META-INF/*.DSA</exclude>
18
<exclude>META-INF/*.RSA</exclude>
19
</excludes>
20
</filter>
21
</filters>
22
<transformers>
23
<transformer
24
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
25
<resource>META-INF/spring.handlers</resource>
26
</transformer>
27
<transformer
28
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
29
<resource>META-INF/spring.schemas</resource>
30
</transformer>
31
<transformer
32
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
33
<resource>META-INF/spring.tooling</resource>
34
</transformer>
35
<transformer
36
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
37
<mainClass>com.xxx.xxxInvoke</mainClass>
38
</transformer>
39
</transformers>
40
<minimizeJar>true</minimizeJar>
41
<shadedArtifactAttached>true</shadedArtifactAttached>
42
</configuration>
43
</execution>
44
</executions>
45
</plugin>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
