使用maven生成可执行jar包(包含依赖)

时间:2021-10-23 12:49:20

零零散散找了一些文章,有些感觉好乱,自己整理一下

以下是pom.xml里的配置,本来有很多依赖包,为了不让配置看着很长,我删了一些dependencies中我自己项目中引入的jar包

使用maven生成可执行jar包(包含依赖)使用maven生成可执行jar包(包含依赖)
 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4
5 <groupId>com.test</groupId>
6 <artifactId>spdbcraw</artifactId>
7 <packaging>jar</packaging>
8 <version>0.0.1-SNAPSHOT</version>
9 <name>spdbcraw</name>
10
11 <dependencies>
12 <dependency>
13 <groupId>log4j</groupId>
14 <artifactId>log4j</artifactId>
15 <version>1.2.13</version>
16 </dependency>
17 <dependency>
18 <groupId>org.slf4j</groupId>
19 <artifactId>slf4j-api</artifactId>
20 <version>1.7.5</version>
21 </dependency>
22 <dependency>
23 <groupId>org.slf4j</groupId>
24 <artifactId>slf4j-log4j12</artifactId>
25 <version>1.7.5</version>
26 </dependency>
27 </dependencies>
28
29 <build>
30 <plugins>
31 <plugin>
32 <groupId>org.apache.maven.plugins</groupId>
33 <artifactId>maven-jar-plugin</artifactId>
34 <configuration>
35 <archive>
36 <manifest>
37 <addClasspath>true</addClasspath>
38 <classpathPrefix>lib/</classpathPrefix>
39 <mainClass>com.test.xpathutil.Main</mainClass>
40 </manifest>
41 <manifestEntries>
42 <Class-Path>.</Class-Path>
43 </manifestEntries>
44 </archive>
45 </configuration>
46 </plugin>
47 <plugin>
48 <groupId>org.apache.maven.plugins</groupId>
49 <artifactId>maven-dependency-plugin</artifactId>
50 <executions>
51 <execution>
52 <id>copy</id>
53 <phase>install</phase>
54 <goals>
55 <goal>copy-dependencies</goal>
56 </goals>
57 <configuration>
58 <outputDirectory>target/lib</outputDirectory>
59 </configuration>
60 </execution>
61 </executions>
62 </plugin>
63 </plugins>
64 </build>
65
66 </project>
View Code

然后clean一下,在install进行打包操作,第一次打包可能会比较久,要下载一些东西

使用maven生成可执行jar包(包含依赖)

在打包的中途,有可能会出现一些错导致打不上包,建议往jdk版本是否在项目中配置好,或者有其他父依赖的问题这方面思考一下

最后,当打包成功之后,在target文件夹下面复制出jar文件和一个lib文件夹,在电脑上任意一个盘里面新建一个文件夹(名称随意),把lib文件夹和jar包放在新创建的文件夹里面,在windows下dos命令行输入:

java -jar test.jar

即可运行成功!

 -----补充-----------------------------------------------------------------------------

另外可能很多人还有一个需求:

maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resources目录下的文件就不需要重新打jar

这里也给一个配制方法的地址:http://blog.csdn.net/su1322339466/article/details/52923806