Добавление коммита в Manifest в проекте Spring Rest на основе Gradle - PullRequest
0 голосов
/ 04 октября 2018

Я хочу добавить хеш коммита к MANIFEST при построении jar.

Контекст выглядит следующим образом:

У меня есть *Проект на основе 1009 * с Spring-boot зависимостями.Это REST проект API.Это моя гипотеза: все плагины, которые я пробовал, переопределяются задачей buildJar, предоставляемой зависимостями Spring.

Итак, мой вопрос следующий,

как я могу добавить хеш коммита в манифест, определив очень простую задачу gradle в проекте?

Я уже знаю, как напечатать последний хеш со следующей задачей

task getHash {
    def p1 = 'git rev-parse HEAD'.execute()
    p1.waitFor()
    println p1.text
}

Вот деталь build.gradle:

buildscript {
    ext {
        springBootVersion = '2.0.5.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.foo.bar'
version = '0.0.4-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    // Spring dependencies
    compile('org.springframework.boot:spring-boot-starter-web')

    //Clickhouse-jdbc
    compile group: 'ru.yandex.clickhouse', name: 'clickhouse-jdbc', version: '0.1.40'

    // Swagger
    compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
    compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'


    // https://mvnrepository.com/artifact/org.json/json
    compile group: 'org.json', name: 'json', version: '20180813'

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

1 Ответ

0 голосов
/ 04 октября 2018

Spring boot предоставляет расширение bootJar, которое вы можете использовать для настройки МАНИФЕСТА:

bootJar {
    manifest {
        attributes(
            "GIT_REV": getHash()
        )
    }
}

вы можете определить getHash() как простую функцию в скрипте сборки:

ext.getHash = {
    def p1 = 'git rev-parse HEAD'.execute()
    p1.waitFor()
    return p1.text
}

Для справки: см. https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-configuring-main-class

Примечание : этот простой пример не должен копироваться и вставляться как есть: вы должны вызывать метод getHash() во время фазы сборки , не во время фазы конфигурации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...