文档章节

maven插件assembly利用profiles打不同环境发布包

龍sky腾
 龍sky腾
发布于 2017/09/09 11:27
字数 455
阅读 2K
收藏 29

精选30+云产品,助力企业轻松上云!>>>

        在使用spring boot开发的时候,会根据环境配置多个application.yml文件(dev,sit等到),在最后发布版本的时候不想把这些不用的配置文件打包到发布包中。在assembly插件的配置文件中也没有找到根据变量排除或加载指定文件的方法,于是就想到了配置多个assembly配置文件(每个配置文件根据环境排查不需要的配置文件),根据pom.xml中的profiles属性指定打包的assembly配置文件。具体的代码如下:

pom.xml中profiles属性配置:

	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<profile.assembly.package.suffix>dev</profile.assembly.package.suffix>
			</properties>
		</profile>
		<profile>
			<id>sit</id>
			<properties>
				<profile.assembly.package.suffix>sit</profile.assembly.package.suffix>
			</properties>
		</profile>
	</profiles>

 

pom.xml中assembly插件的配置: (最简化配置)

			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<appendAssemblyId>false</appendAssemblyId>
					<descriptors>
						<descriptor>src/assembly/package-${profile.assembly.package.suffix}.xml</descriptor>
					</descriptors>
					<finalName>${project.artifactId}-${project.version}</finalName>
				</configuration>
			</plugin>

 

assembly插件的配置文件:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
	<id>customer</id>
	<formats>
		<format>tar.gz</format>
	</formats>

	<fileSets>
		<fileSet>
			<directory>sbin</directory>
			<outputDirectory>/sbin</outputDirectory>
			<useDefaultExcludes>true</useDefaultExcludes>
			<excludes>
				<exclude>mvn_*</exclude>
				<exclude>shutdown.sh</exclude>
				<exclude>startup.sh</exclude>
				<exclude>assembly*</exclude>
			</excludes>
		</fileSet>
		<fileSet>
			<directory>target/classes</directory>
			<outputDirectory>/classes</outputDirectory>
			<excludes>
				<exclude>/com/**/xx/**</exclude>  <!-- 排除某个目录下的所有文件 -->
				<exclude>/com/**/xxxx/**</exclude>
				<exclude>/com/**/xxxxxxx.class</exclude> <!-- 排除某个文件 -->
				<exclude>/static/**</exclude>
				<exclude>/templates/**</exclude>
			</excludes>
			<useDefaultExcludes>true</useDefaultExcludes>
		</fileSet>
		<fileSet>
			<directory>logs</directory>
			<outputDirectory>/logs</outputDirectory>
			<excludes>
				<exclude>/*.log</exclude>
				<exclude>/backup/*.log</exclude>
			</excludes>
			<useDefaultExcludes>true</useDefaultExcludes>
		</fileSet>
	</fileSets>
	<dependencySets>
		<dependencySet>
			<useProjectArtifact>false</useProjectArtifact>
			<outputDirectory>/lib</outputDirectory>
			<excludes> <!-- 排除不需要的依赖包 -->
				<exclude>org.springframework:spring-jdbc</exclude>
				<exclude>org.springframework.boot:spring-boot-starter-jdbc</exclude>
				<exclude>org.springframework.boot:spring-boot-starter-data-jpa</exclude>
				<exclude>org.springframework.boot:spring-boot-starter-redis</exclude>
				<exclude>org.springframework.data:spring-data-jpa</exclude>
				<exclude>org.hibernate.javax.persistence:hibernate-jpa-2.1-api</exclude>
			</excludes>
			<scope>runtime</scope>
		</dependencySet>
	</dependencySets>
</assembly>

 

执行命令:

mvn -f $Project_HOME/pom.xml clean assembly:assembly -DskipTests  #跳过测试

 

 

 

龍sky腾
粉丝 7
博文 41
码字总数 11647
作品 0
东城
项目经理
私信 提问
加载中
请先登录后再评论。
JAVA开发必知工具-Maven-常用maven插件总结

aven是目前java项目中比较流行的构建工具,特别是它提供的插件,如果使用得当,整个项目研发流程都将会受益,从而提高研发、测试和部署的效率。这里记录几个常用插件的用法,既方便自己日后回...

asfg5369
2018/10/14
64
0
springboot打包不同环境配置与shell脚本部署

本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenn...

神牛003
2019/03/09
0
0
springboot打包不同环境配置与shell脚本部署

本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenn...

osc_feymneeg
2019/03/09
1
0
spring-boot-assembly | Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

spring-boot-assembly 在spring boot项目中使用maven profiles和maven assembly插件根据不同环境打包成tar.gz或者zip 将spring boot项目中的配置文件提取到外部config目录中 将spring boot项...

geekidea
2018/12/22
0
0
MAVEN利用Profile构建不同环境的部署包

通常,项目要在多个环境部署,每种环境都有各自的资源配置参数,比如:数据库连接、Redis服务器地址等等。 所以,各个环境打包出来的资源是不一样的,如果手动的修改,费时费力。我们可以利用...

java菜分享
2018/09/14
4
0

没有更多内容

加载失败,请刷新页面

加载更多

【题解】p6160 [Cnoi2020]向量

原题传送门 序 啊又是勤奋学习的一天...... 这种mo题目能做出来纯靠感觉。 样例分析 样例输入给了组3、4、5的勾股数,而输出正好是三向量加和为0时的答案。 嗯我好像感觉到了什么...... 于是...

osc_4dady4pk
13分钟前
13
0
【题解】p6160 [Cnoi2020]向量

原题传送门 序 啊又是勤奋学习的一天...... 这种mo题目能做出来纯靠感觉。 样例分析 样例输入给了组3、4、5的勾股数,而输出正好是三向量加和为0时的答案。 嗯我好像感觉到了什么...... 于是...

osc_a7a1prn6
14分钟前
0
0
FreeSql (一)入门

FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin 等支持 NetStandard 所有运行平台。(QQ群:4336577) 模型 FreeSql 使用模型执行数据访问,模...

osc_smzoc82r
15分钟前
12
0
TCP协议粘包问题详解

TCP协议粘包问题详解 前言   在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题。本章主要介绍TCP粘包的原理与其三种解决粘包的方案。并且还会介绍为什么UDP协议不会产...

osc_tjnx25e9
18分钟前
0
0
Ubuntu16.04密码正确 进不去桌面系统(已测试恢复正常)

遇到过两次ubuntu输入密码正确,但是进不去系统,输入密码后,跳转到一下界面 之后又返回到登陆界面,一直这样循环输入密码。 Guest用户可以。 解决办法:   1。进入tty下 :ctrl+alt+F1(F...

osc_lfbryx1h
19分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部