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下,执行打包。

相关推荐
老白干1 小时前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
圆山猫8 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管8 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨8 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
HiDev_8 小时前
【非标自动化】2、认识元器件(直线模组)
运维·自动化
豆瓣鸡9 小时前
算法日记 - Day3
java·开发语言·算法
浦信仿真大讲堂9 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
萧瑟余晖9 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9859 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室11 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发