Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何使用gradle向生成的jar追加时间戳?_Spring Boot_Gradle_Jar - Fatal编程技术网

Spring boot 如何使用gradle向生成的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

我是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.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和更高版本中的类所取代。请参阅@user2340345
String datetimepartion=OffsetDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.SECONDS).format(DateTimeFormatter.of模式(“uuummdd'T'HHmmss”)中包含<代码> T >代码>,遵循流行的标准格式来交换日期时间值。考虑一下你想用什么时间来捕捉当前时刻(时区,或者UTC的偏移)——通常最好在UTC中工作。