Springboot如何基于assembly服务化实现打包
更新时间:2020年06月13日 08:46:57 作者:18岁的俊后生
这篇文章主要介绍了Springboot如何基于assembly服务化实现打包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
(1)首先我们编辑 assembly.xml 配置文件,在前文的基础上新增第三方依赖设置(高亮部分),实现将第三方的 jar 包添加到压缩包里的 lib 目录:
<?xml version="1.0" encoding="UTF-8"?> <assembly> <!-- 必须写,否则打包时会有 assembly ID must be present and non-empty 错误 这个名字最终会追加到打包的名字的末尾,如项目的名字为 hangge-test-0.0.1-SNAPSHOT, 则最终生成的包名为 hangge-test-0.0.1-SNAPSHOT-bin.tar.gz --> <id>bin</id> <!-- 打包的类型,如果有N个,将会打N个类型的包 --> <formats> <!-- <format>tar.gz</format>--> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <!--第三方依赖设置--> <dependencySets> <dependencySet> <!-- 不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 --> <useProjectArtifact>false</useProjectArtifact> <outputDirectory>lib</outputDirectory> <unpack>false</unpack> </dependencySet> </dependencySets> <!--文件设置--> <fileSets> <!-- 0755->即用户具有读/写/执行权限,组用户和其它用户具有读写权限; 0644->即用户具有读写权限,组用户和其它用户具有只读权限; --> <!-- 将src/main/assembly/bin目录下的所有文件输出到打包后的bin目录中 --> <fileSet> <directory>src/main/assembly/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> <!--如果是脚本,一定要改为unix.如果是在windows上面编码,会出现dos编写问题--> <lineEnding>unix</lineEnding> <filtered>true</filtered><!-- 是否进行属性替换 --> </fileSet> <!-- 将src/main/assembly/config目录下的所有文件输出到打包后的config目录中 --> <fileSet> <directory>src/main/assembly/config</directory> <outputDirectory>config</outputDirectory> <fileMode>0644</fileMode> </fileSet> <!-- 将src/main/resources下配置文件打包到config目录 --> <fileSet> <directory>src/main/resources</directory> <outputDirectory>./config</outputDirectory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.yml</include> </includes> <filtered>true</filtered><!-- 是否进行属性替换 --> </fileSet> <!-- 将项目启动jar打包到lib目录中 --> <fileSet> <directory>target</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <!-- 将项目说明文档打包到docs目录中 --> <!-- <fileSet> <directory>.</directory> <outputDirectory>./docs</outputDirectory> <includes> <include>*.md</include> </includes> <fileMode>0644</fileMode> </fileSet>--> <fileSet> <directory>docs</directory> <outputDirectory>./docs</outputDirectory> <fileMode>0644</fileMode> </fileSet> <fileSet> <directory>src/main/assembly/docs</directory> <outputDirectory>./docs</outputDirectory> <fileMode>0644</fileMode> </fileSet> </fileSets> </assembly>
(2)接着编辑项目的 pom.xml 文件,先前使用的是 spring-boot-maven-plugin 来打包,这个插件会将项目所有的依赖打入项目 jar 包里面。我们将其替换为 maven-jar-plugin,并进行相关设置
<build> <plugins> <!-- 指定启动类,将依赖打成外部jar包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <!-- 是否要把第三方jar加入到类构建路径 --> <addClasspath>true</addClasspath> <!-- 外部依赖jar包的最终位置 --> <!-- 因为我们将第三方jar和本项目jar放在同一个目录下,这里就使用./ --> <classpathPrefix>./lib</classpathPrefix> <!-- 项目启动类 --> <mainClass>com.yuehang.disneyland.DisneylandApplication</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <!--主要使用的是maven提供的assembly插件完成--> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.1</version> <configuration> <descriptors> <!--具体的配置文件--> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <!--绑定到maven操作类型上--> <phase>package</phase> <!--运行一次--> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
然后打包出来的结构
运行就ok了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringBoot整合Redis实现热点数据缓存的示例代码
这篇文章主要介绍了SpringBoot中整合Redis实现热点数据缓存,本文以IDEA + SpringBoot作为 Java中整合Redis的使用 的测试环境,结合实例代码给大家详细讲解,需要的朋友可以参考下2023-03-03springboot themaleaf 第一次进页面不加载css的问题
这篇文章主要介绍了springboot themaleaf 第一次进页面不加载css的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-10-10IDEA2020.2.3中创建JavaWeb工程的完整步骤记录
这篇文章主要给大家介绍了关于IDEA2020.2.3中创建JavaWeb工程的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12IDEA集成JProfiler11可视化工具的详细流程(安装、集成、测试)
小编打算在IDEA中集成一下JProfiler11(现在有12版本了)工具,到网上搜都没有找到合适的,于是自己动手写个,关于IDEA集成JProfiler11可视化工具(安装、集成、测试)相关知识感兴趣的朋友一起看看吧2021-06-06
最新评论