SpringBoot自定义格式打包
来上班的第一天让弄个springboot的打包格式,到网上搜了下大概有三种,接下来就给大家简单介绍下。
下面是SpringBoot引用了官方提供的打包插件
<build>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</build>
通过这种方式打包出来的项目,所有文件都放在一个jar包中。这使得jar包非常臃肿,不利于服务器上部署。这时候就希望在maven打包的时候,把一些结构分离出jar包外。
使用基于 maven 自定义格式打包
改变包的目录结构,其中resources下的配置文件放在config目录下,所有的依赖包放在lib下,程序的启动jar就会变得很小。并且代码改变之后,只需要将打包出来的jar上传到服务器替换后再运行就可以了。
目前用过的就这两种:
1:自定义打包的结构,需要修改pom.xml文件中<build>标签里的内容
<build>
<finalName>FlightChangeService</finalName>
<resources>
<resource>
<!--指定mapping下的所有xml文件打包在jar中-->
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>mapping/*.xml</include>
</includes>
</resource>
<resource>
<!--resources下一级的所有.xml .properties文件复制到config目录下-->
<targetPath>${project.build.directory}/config</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**.xml</include>
<include>**.properties</include>
</includes>
</resource>
</resources>
<plugins>
<!--maven-dependency插件,将项目所有依赖包放到lib目录下-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<type>jar</type>
<includeTypes>jar</includeTypes>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<mainClass>com.loongair.Application</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<!--jar中的MANIFEST.MF文件ClassPath需要添加config目录才能读取到配置文件-->
<Class-Path>config/ .</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
第二种:主要使用的是maven提供的assembly插件完成
在pom文件下面的build标签下引入assembly依赖
org.apache.maven.plugins
maven-assembly-plugin
2.5.5
java.cn.DemoMain
${project.basedir}/src/main/assembly/assembly.xml
jar-with-dependencies
make-assembly
package
single
在这个位置配置上对应的配置文件
最后maven package一下就生成了 在target文件目录里可以看到
第一次写博客 不喜勿喷!