Получить значение из build.gradle в код

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

Добавьте значение, которое у вас есть в gradle, в свой файл свойств перед задачей сборки или включите версию в файл манифеста и прочтите ее с помощью getResources

Boaz 03.08.2018 11:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
848
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Есть много способов, с помощью которых вы можете "внедрить" информацию в свой код.

Сначала вы можете использовать файл манифеста и читать из него

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')
}

Другие вопросы по теме