Spring boot Gradle делает tar файл из встроенного jar, исключая ресурсы - PullRequest
1 голос
/ 30 мая 2019

Я хотел бы создать tar-файл из собранных пакетов в приложении Spring Boot. Мой файл сборки выглядит следующим образом:

apply plugin: 'distribution'

distributions {
    main {
        baseName = "${project.name}"
        contents {
            into('/conf'){
                from('src/main/resources')
            }
            into('/bin'){
                from('libs')
            }
        }
    }
}

tasks.withType(Tar) {
    compression = Compression.GZIP
    extension = "tar.gz"
}

configurations {
    customArch
}

artifacts {
    customArch file(distTar.archivePath)
}

Я хотел бы иметь один файл tar.gz, содержащий следующую структуру каталогов:

tar.gz:
   - bin
       - project.jar
   - conf
       - application.yaml
       - anything else from the resources folder

Однако, когда я собираю pakcage, он дает мне tar-файл, содержащий исходные файлы, и отдельный каталог lib с файлом jar. Буду признателен, если вы поможете мне понять, в чем проблема. Я подозреваю, что по какой-то причине дистрибутив запускается до сборки, поэтому в нем нет доступного каталога lib.

1 Ответ

1 голос
/ 30 мая 2019

Для достижения вашей целевой структуры каталогов вы должны изменить закрытие вашего дистрибутива следующим образом: (Примечание: я предположил, что ваш application.yaml находится в каталоге ресурсов.)

distributions {
    main {
        baseName = "${project.name}"
        contents {
            into('/conf'){
                from('src/main/resources')
            }
            into('/bin'){
                from('build/libs')
            }
        }
    }
}

И собрать файл jar передtar-файл, вы должны изменить задачу distTar следующим образом:

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