У нас есть build.gradle, в котором определен version. Мне нужно реализовать конечную точку версии (например, /version), чтобы получить версию проекта. Это свойство version в build.gradle существует уже давно, я не могу переместить его в файл project.properties. Как я могу получить доступ к значениям этого version из моего кода Java?




Есть много способов, с помощью которых вы можете "внедрить" информацию в свой код.
Сначала вы можете использовать файл манифеста и читать из него
jar {
manifest {
attributes(
"lib-version": version
}
}
В соединении с Чтение манифеста моего собственного Jar
Другой вариант - добавить эту информацию в ваши файлы свойств перед задачей jar.
task('addVersion') {
doLast {
//append the version here, see example
file("src/main/resources/props.properties").append("version=$version")
}
}
jar.dependsOn(addVersion)
Одному из наших проектов нужна не только информация о версии, но и время сборки и т. д. Мы используем задачу копирования с подстановкой шаблона.
task updateVersions(type: Copy) {
Properties props = new Properties()
props.load(new FileInputStream(file('build.properties')))
props.put("buildtime", new Date().format("dd MMM yyyy hh:mm aa"))
props.put("version", "${version}")
from project(':main').file('Version.tmpl')
into file('src/main/java').path
expand(props)
rename('Version.tmpl', 'Version.java')
}
Добавьте значение, которое у вас есть в gradle, в свой файл свойств перед задачей сборки или включите версию в файл манифеста и прочтите ее с помощью getResources