spring boot 打jar包分离lib和resources

本文介绍了如何通过maven插件配置,将Spring Boot应用的jar包分离为lib和resources目录,以方便管理和更新。在处理大量依赖和频繁修改资源配置时,这种方法尤为实用。文中详细解释了maven-dependency-plugin、maven-resources-plugin和spring-boot-maven-plugin的使用,包括各个目标的含义和作用。
摘要由CSDN通过智能技术生成

在代码依赖过多jar包,或者频繁修改resources目录下的配置文件时,直接把所有信息打到jar里面会非常麻烦。可以通过打jar包分离lib和resources的方式来解决这个问题。

在配置完成之后,启动项目出现了一个问题

2019-06-21 14:12:13.088 DirectJDKLog.java:182 - A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
	at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_121]
	at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_121]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_121]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
	... 6 more

看错误提示跟tomcat

好的,针对你的问题,我可以给你提供以下步骤: 1. 在 pom.xml 文件中,添加以下插件: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 2. 在 pom.xml 文件中,添加以下配置: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.yml</include> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.1</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.example.Application</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 3. 在 pom.xml 文件中,添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${spring-boot.version}</version> </dependency> ``` 4. 在 pom.xml 文件中,添加以下插件: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> ``` 5. 执行 mvn package 命令,生成可执行的 JAR 包。JAR 包以项目名称命名,位于 target 目录下。lib 目录也位于 target 目录下,其中包含项目依赖的所有 JAR 包。 注意:如果你使用的是其他的构建工具,如 Gradle,那么你需要将以上的配置进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值