Ala*_*n47 9 java build version gradle
默认情况下,所有gradle java项目都有一个version
属性.通常,这看起来像:
allprojects {
apply plugin: 'java'
// ...
// configure the group and version for this project
group = 'org.example'
version = '0.2-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使这里定义的"版本"属性可用于构建的Java代码?我想拥有的是这个项目中的类:
public class BuildVersion {
public static String getBuildVersion(){
return // ... what was configured in gradle when project was built
}
}
Run Code Online (Sandbox Code Playgroud)
我想这可以通过某种源代码生成来完成.或者让gradle将变量写入某种配置文件中src/main/resources
.在Gradle中有"标准"(即普遍接受的)方式吗?
And*_*eas 26
假设你的摇篮脚本插入version
到JAR清单正确,如图所示在这里:
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
Run Code Online (Sandbox Code Playgroud)
您的代码将能够从该jar清单文件中获取该版本:
public class BuildVersion {
public static String getBuildVersion(){
return BuildVersion.class.getPackage().getImplementationVersion();
}
}
Run Code Online (Sandbox Code Playgroud)
或者,编写Gradle任务以创建包含其中版本的属性文件,并将该生成的属性文件包含在jar文件中,然后使用该文件访问它getResouceAsStream()
.
您当然也可以BuildVersion.java
从Gradle任务生成文件,并将版本直接嵌入为字符串文字,并确保任务在任务之前运行compile
.
但我建议只使用你将要包含的版本号(清单文件),它完全支持Gradle写入它和Java Runtime读取它,没有任何自定义Gradle任务或Java文件读取.
归档时间: |
|
查看次数: |
7174 次 |
最近记录: |