关于spring boot的maven项目打成jar包时,分离配置文件和依赖jar包的事情,本来网上找找资料一会就能搞定的,但是搜索了好多资料都是基本只能够实现配置文件分离的,依赖jar还是没分离出来。最后通过瘦身jar相关的文档和maven plugins相关文档理解一些配置的信息,然后找到了一个方法,分享给大家,转载连接在最后。
1、需要到的maven plugins
spring-boot-maven-plugin:用于分离依赖jar
maven-jar-plugin:用力分离配置文件和指定main class
maven-dependency-plugin:拷贝依赖jar文件
注:网上很多资料都是只配置maven-jar-plugin和maven-dependency-plugin就说可以了,其实只是把依赖jar拷贝了一份出来放在lib文件夹下,打包的jar包中依然存在lib,没有真正分离。
2、配置文件详解
分离后配置文件只需要放在jar包同级的config(加载优先级最高)目录下即可,依赖jar放在lib下,启动命令网上很多,我这里就不多说了
1
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
46
47
48
49
50
51
52
53
54
55
56
57
58<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <!--去除在生产环境中不变的依赖,我此处把所有的依赖jar都去除--> <excludeGroupIds> org.springframework.boot, org.springframework, org.springframework.data ...... </excludeGroupIds> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <useUniqueVersions>false</useUniqueVersions> <!-- 配置spring boot applincation class的路径,即启动的main --> <mainClass>com.wonders.insight.individual.PbankCloudInsightIndividualApplication</mainClass> </manifest> </archive> <!--打包时排除配置文件,此处默认的路径是编译后classes路径,resources默认在classPath下,所以下面只用匹配文件即可--> <excludes> <exclude>*.properties</exclude> <exclude>*.yml</exclude> <exclude>*.xml</exclude> <exclude>mapping/**</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <!-- 此处执行的作用是将依赖jar包拷贝一份存储在target/lib中 <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!-- 拷贝依赖jar存储位置,${project.build.directory}为Maven内置变量,缺省为target --> <outputDirectory> ${project.build.directory}/lib </outputDirectory> <!-- 此处还根据需求添加其他配置,如excludeTransitive、stripVersion等 --> </configuration> </execution> </executions> </plugin> </plugins> </build>
3、参考文档
详细maven打包插件的配置释义:maven打包插件:maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin详解
jar瘦身参考:【SpringBoot】迭代发布下的Jar瘦身实践
最后
以上就是称心往事最近收集整理的关于maven打包spring boot时分离配置文件和依赖jar文件的全部内容,更多相关maven打包spring内容请搜索靠谱客的其他文章。
发表评论 取消回复