Spring boot 如何使用gradle向生成的jar追加时间戳?
我是Gradle的新手,我提出了很多问题,但找不到解决办法。 我的问题是,在运行gradlebuild命令之后,如何向jar文件名附加时间戳 我的名字-Spring boot 如何使用gradle向生成的jar追加时间戳?,spring-boot,gradle,jar,Spring Boot,Gradle,Jar,我是Gradle的新手,我提出了很多问题,但找不到解决办法。 我的问题是,在运行gradlebuild命令之后,如何向jar文件名附加时间戳 我的名字- abc-0.0.1-SNAPSHOT.jar 我想要什么 jar name - abc-0.0.1-SNAPSHOT20180721101136.jar 我的build.gradle文件 apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframe
abc-0.0.1-SNAPSHOT.jar
我想要什么
jar name - abc-0.0.1-SNAPSHOT20180721101136.jar
我的build.gradle文件
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.abc'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
我尝试了build.date='${timestamp}'
,但taht确实有效
我也试过先做,但没有成功
非常感谢您的帮助。谢谢您可以通过设置相应任务的
archiveName
属性轻松选择JAR文件的名称:
jar {
archiveName = 'myJarFile.jar'
}
默认情况下,archiveName
将通过模式[baseName]-[appendix]-[version]-[classifier].[extension]
组装,其中每个部分都是各自任务的另一个属性。对于您的特定用例,我建议只更改名称的版本
部分:
jar {
version = project.version + timestamp // define timestamp in a way you like
}
您可能希望将此配置放入
doFirst
闭包中,因为时间戳将更精确地表示JAR文件实际创建的时间 时间戳是我需要定义的函数吗?一个变量,您可以在设置新的版本之前设置它。我不知道您想如何定义时间戳,您可以使用JDK中的任何方法:我这样做:def timestamp=new Date().format('yyyyMMddHHmmss')jar{version='0.0.1-SNAPSHOT'archiveName='abc'+version+timestamp}
但它不向jar@user2340345仅供参考,非常麻烦的旧日期时间类,如,和java.text.simpleDataFormat
,现在被内置在Java8和更高版本中的类所取代。请参阅@user2340345String datetimepartion=OffsetDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.SECONDS).format(DateTimeFormatter.of模式(“uuummdd'T'HHmmss”)代码>中包含<代码> T >代码>,遵循流行的标准格式来交换日期时间值。考虑一下你想用什么时间来捕捉当前时刻(时区,或者UTC的偏移)——通常最好在UTC中工作。