Maven打包时指定输出路径、以时间戳命名包名和路径名,结合IDEA以指令脚本方式动态配置输出目录

说明

Maven打包时指定输出路径、以时间戳命名包名和路径名,结合IDEA以指令脚本方式动态配置输出目录

maven配置:

定义打包输出目录<build.out.dir>

xml 复制代码
	<properties>
		<build.out.dir>${project.build.directory}</build.out.dir>
	</properties>

添加输出目录配置<outputDirectory>

xml 复制代码
<build>
		<finalName>xxx-${build.time}</finalName>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<version>2.5.0</version>
			<configuration>
				<!-- jar包输出目录 -->
				<outputDirectory>${build.out.dir}</outputDirectory>
         <fork>false</fork>
				<includeSystemScope>true</includeSystemScope>
			</configuration>
			<executions>
				<execution>
					<goals>
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
		<plugin>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.6</version>
			<configuration>
				<!-- war包输出目录 -->
				<outputDirectory>${build.out.dir}</outputDirectory> 
				<failOnMissingWebXml>false</failOnMissingWebXml>
			</configuration>
			<executions>
				<execution>
					<id>war</id>
					<goals>
						<goal>war</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
		<!--打包时间-->
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>build-helper-maven-plugin</artifactId>
			<version>1.10</version>
			<executions>
				<execution>
					<id>timestamp-property</id>
					<goals>
						<goal>timestamp-property</goal>
					</goals>
					<configuration>
						<name>build.time</name>
						<pattern>yyyyMMddHHmm</pattern>
						<locale>zh_CN</locale>
						<timeZone>Asia/Shanghai</timeZone>
					</configuration>
				</execution>
			</executions>
		</plugin>
</build>

IDEA配置:

选择maven构建的Lifecycle下的package右键Modify Run Configuration,在Run中补充指令参数,如下所示:

shell 复制代码
-Dbuild.out.dir=D:\outputdir\${build.time} package -f pom.xml

保存后生成一个执行脚本在 Run Configuration下,执行打包。

相关推荐
小科先生2 小时前
Java springboot调用数据库的基本流程
java·数据库·spring boot
秋饼3 小时前
GPT-Live 全双工语音 API Java 服务端落地实战:事件协议、会话恢复与生产踩坑
java·ai·技术分享·后端开发
SL_staff3 小时前
为什么企业级自动化不能只靠AI编排?——逻辑引擎在确定性业务场景中的不可替代性
java·开源·产品
Pniubi4 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
松仔log5 小时前
Kotlin中级——callbackFlow
java·前端·kotlin
知守观5 小时前
同一个团队两套分包:DDD 四层落地后,domain 层最大的类还是 5885 行
java·后端·领域驱动设计
文丑颜不良啊6 小时前
LeetCode2541~2560题目解析
java·leetcode
瑞雪兆丰年兮6 小时前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
Highcharts.js6 小时前
Highcharts智能数据分析平台Orbit 多语言配置技术文档
java·前端·javascript·highcharts·orbit·智能数据分析·设置文档
Rain的Java大神之路6 小时前
设计一套生产级 API 接口:从契约、安全、幂等到限流,我踩过的坑都在这了
java·后端·面试