SpringBoot项目打包分离lib包与配置文件

1. 不分离打包(默认)

SpringBoot初始化建立项目默认的spring-boot-maven-plugin插件,进行项目打包,这个插件会将项目所有的依赖打入BOOT-INF/lib下,pom文件配置如下:

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-maven-pluginartifactId>
			plugin>
		plugins>
	build>

package打包后,打出的是完整的可运行的jar包,根据项目的不同大小不同,整体来说是比较大的。

SpringBoot项目打包分离lib包与配置文件_第1张图片

2. 分离打包

替换为maven-jar-plugin打包插件,pom文件修改如下:

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-jar-pluginartifactId>
				<configuration>
					
					<excludes>
						<exclude>*.propertiesexclude>
						<exclude>*.ymlexclude>
						<exclude>*.yamlexclude>
					excludes>
					<archive>
						<manifest>
							
							<mainClass>com.dcxuexi.Springboot03JarApplicationmainClass>
							
							<addClasspath>trueaddClasspath>
							
							<classpathPrefix>lib/classpathPrefix>
							
							<useUniqueVersions>falseuseUniqueVersions>
						manifest>
						<manifestEntries>
							
							<Class-Path>config/Class-Path>
						manifestEntries>
					archive>
				configuration>
			plugin>
			<plugin>
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-dependency-pluginartifactId>
				<executions>
					<execution>
						<id>copyid>
						<phase>packagephase>
						<goals>
							<goal>copy-dependenciesgoal>
						goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib/outputDirectory>
						configuration>
					execution>
				executions>
			plugin>

			<plugin>
				<artifactId>maven-resources-pluginartifactId>
				<executions>
					<execution>
						<id>copy-resourcesid>
						<phase>packagephase>
						<goals>
							<goal>copy-resourcesgoal>
						goals>
						<configuration>
							<resources>
								
								<resource>
									<directory>src/main/resources/directory>
									<includes>
										<include>*.propertiesinclude>
										<include>*.ymlinclude>
										<exclude>*.yamlexclude>
									includes>
								resource>
							resources>
							<outputDirectory>${project.build.directory}/configoutputDirectory>
						configuration>
					execution>
				executions>
			plugin>
		plugins>
	build>

先后分别双击执行cleanpackage命令,进行清理和打包。

SpringBoot项目打包分离lib包与配置文件_第2张图片

打包后的结构如下:

SpringBoot项目打包分离lib包与配置文件_第3张图片

使用命令java -jar .\springboot_03_jar-0.0.1-SNAPSHOT.jar启动jar

SpringBoot项目打包分离lib包与配置文件_第4张图片

这样就完成了配置文件以及lib包和jar的分离了,并且jar在运行的时候会默认去读取config文件夹中的配置,修改起来非常方便。


项目代码

  • gitee 代码下载

  • github 代码下载

你可能感兴趣的:(SpringBoot,spring,boot,java,spring,maven)