前言
Springboot 打jar包分离lib,配置文件的方式,网上可以搜到的我都没试通。跟刘大神(大神没有博客,很可惜)讨论后,给出了这么一个解决方案,供大家参考。
部署环境
POM.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.elvish</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test</name> <description>test</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <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> <outputDirectory>target/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.yml</exclude> <exclude>static/**</exclude> <exclude>templates/**</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <includes> <include> <groupId>non-exists</groupId> <artifactId>non-exists</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>classes</classifier> <attach>false</attach> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <property name="dist">target/distribution</property> <property name="dist-tmp">target/distribution/tmp</property> <property name="app-name">${project.artifactId}-${project.version}</property> <mkdir dir="${dist-tmp}" /> <copy file="target/${app-name}.jar" tofile="${dist-tmp}/${app-name}.jar" /> <unzip src="${dist-tmp}/${app-name}.jar" dest="${dist-tmp}" /> <delete file="${dist-tmp}/${app-name}.jar" /> <zip destfile="${dist}/${app-name}-pages.jar"> <zipfileset dir="${dist-tmp}/META-INF" prefix="META-INF" /> <zipfileset dir="target/classes/static" prefix="static" /> <zipfileset dir="target/classes/templates" prefix="templates" /> </zip> <move file="target/${app-name}-classes.jar" todir="${dist}" /> <move todir="${dist}/3rd-lib"> <fileset dir="target/lib" /> </move> <delete dir="${dist-tmp}" /> <copy todir="${dist}"> <fileset dir="target/classes"> <include name="**/*.properties" /> <include name="**/*.xml" /> <include name="**/*.yml" /> </fileset> </copy> </target> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
打完包后目录结构
运行jar
java -jar -Dloader.path=.,3rd-lib test-0.0.1-SNAPSHOT-classes.jar
总结
以上所述是小编给大家介绍的Spring boot 打jar包分离lib的正确配置方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍Springboot基于maven打包分离lib及resource,包括了Springboot基于maven打包分离lib及resource的使用技巧和注意事项,需要的朋友参考一下 之前在部署Spring Boot项目时,经常因为只修改了一小处代码、或者只更新了某个jar包,但是却需要将整个项目重新打包、上传、部署,整个包一般都会达到40-60M,每次都重复这个操作真的很耗费时间,因
本文向大家介绍maven+springboot打成jar包的方法,包括了maven+springboot打成jar包的方法的使用技巧和注意事项,需要的朋友参考一下 maven的命令: 1.mvn clean package -DskipTests:在项目目录下运行此命令,在target目录下生成jar包或war包。 2.mvn clean:清理项目生产的临时文件,一般是模块下的target目录 3
问题内容: 我知道还有其他针对同一问题的问题,但问题是解决方案对我不起作用。我有一个小工具,它应该读取我想拥有的文件并将其打包为资源,并依赖于其他我希望将其作为jar而不是单个类的项目(我正在使用Eclipse Helios)。 作为Eclipse中的应用程序,我可以通过以下方式访问资源 当且仅当将资源文件夹放置在输出路径(已编译的源)下时,并且如果将其放置在src文件夹中时,则不是这样。 当我打
我使用的是JaCoCo代码覆盖率,但报告中包含了来自jar、lib的类。(离线检测,Maven) 我解决了离线配置的问题,因为“aspectj-maven-plugin”正在更改类文件,现在我也成功地排除了之外的包- 我还尝试过从jacoco coverage report中排除jar文件类的解决方案,但它对我不起作用<代码> 我的Jacoco离线配置: surefire插件 我认为我从德雅科内部
本文向大家介绍springboot打包jar和war包的教程图解,包括了springboot打包jar和war包的教程图解的使用技巧和注意事项,需要的朋友参考一下 Maven小白系列,我们会分为几个部分? 01 添加依赖并打包 02 添加本地jar包并打包 03 将本地jar包导入本地maven库 04 springboot打包jar和war 05 Maven统一版本管理 接下来,我们开始第四部分
本文向大家介绍Spring Boot打jar包后配置文件的外部优化配置方法,包括了Spring Boot打jar包后配置文件的外部优化配置方法的使用技巧和注意事项,需要的朋友参考一下 在未进行任何处理的情况下,Spring Boot会默认使用项目中的 application.properties 或者 application.yml 来读取项目所需配置。 我这里只记录几种自己所用到的。 访问命