分布式项目、微服务项目一般都会引用许多公共依赖,每次maven打出来的jar包上百M,不利于运维工作、可以在打包时隔离项目本身的jar和依赖的公用jar包,这样项目本身包可以做到很精简。
本文主要把项目依赖的包和项目的配置文件在打包时导出到本身springboot 的jar包 外。
本文项目中导入依赖用到了两种方式,一是直接通过maven库,二是通过导入本地第三方jar
配置 全部配置我在系统根目录下创建了一个boot的文件夹,mvn打包之后会在boot下创建名称为lib、boot-demo的两个文件夹,lib用来存放所有依赖的jar,boot-demo用来存放springboot的jar和application.properties配置文件
用到了
maven-compiler-plugin:负责编译源码
spring-boot-maven-plugin :负责编译springbootjar
maven-jar-plugin:负责把项目依赖的jar写到MANIFEST.MF文件
maven-dependency-plugin:负责导出项目依赖的jar
maven-resources-plugin:负责导出项目配置文件
4.0.0
com.luck
boot-demo
1.0-SNAPSHOT
boot-demo
/boot
. ../lib/mytest-1.0.jar
${env.JAVA_HOME}
UTF-8
1.8
org.springframework.boot
spring-boot-dependencies
2.3.0.RELEASE
pom
import
org.springframework.boot
spring-boot-starter-web
com.luck
mytest
1.0
system
${basedir}/lib/otherjar.jar
src/main/java
**/*.xml
src/main/resources
**/*.*
*.properties
src/main/${package.environment}
**/*.*
*.properties
${project.basedir}/target/classes
true
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
UTF8
${java.home}\jre\lib\rt.jar;${java.home}\jre\lib\jce.jar
org.springframework.boot
spring-boot-maven-plugin
com.luck.MainApplication
ZIP
nojar
nojar
${global-jar-output}/${project.artifactId}
repackage
org.apache.maven.plugins
maven-jar-plugin
true
../lib/
false
${system-jar-classpath}
org.apache.maven.plugins
maven-dependency-plugin
copy-lib
package
copy-dependencies
${global-jar-output}/lib
false
false
false
org.apache.maven.plugins
maven-resources-plugin
copy-config
package
copy-resources
src/main/resources
*.properties
${global-jar-output}/${project.artifactId}
test
res-test
dev
true
resources
生成
Java中读取application.properties文件
java读取外部配置文件需要用到
org.springframework.core.io.ClassPathResource.ClassPathResource这个类
InputStream in = new ClassPathResource("application.properties").getInputStream()
参考文章
SpringBoot 部署 Jar 文件,瘦身优化指南 ! - 知乎
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)