Сборка Gradle: исключить файлы ресурсов из файла Spring Boot Jar - PullRequest
1 голос
/ 17 июня 2019

Я хотел бы исключить все файлы конфигурации из файла JAR, поскольку они будут предоставлены при подготовке, и наличие другой версии в пути сборки может создать некоторые проблемы во время выполнения.Я использую следующий скрипт сборки Gradle, но по какой-то причине я все еще вижу все, что существует в каталоге ресурсов, которое нужно скопировать во встроенный Jar.По какой-то причине предоставленная сборка Gradle не работает должным образом.

apply plugin: 'distribution'

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


    processResources {
        # Not sure how I need to point to the resources, so I included both. However, none is working.
        exclude('resources/*')
        exclude('src/main/resources/*')
    }

    bootJar{
        # Not sure how I need to point to the resources, so I included both. However, none is working.
        exclude('resources/*')
        exclude('src/main/resources/*')    
    }

    distTar {
        dependsOn bootJar
    }

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

    configurations {
        customArch
    }

    artifacts {
        customArch file(distTar.archivePath)
    }

1 Ответ

0 голосов
/ 18 июня 2019

Мне удалось исключить ресурсы из появления в файле Jar с помощью processResources.enabled = false, поэтому файл сборки выглядит следующим образом.

apply plugin: 'distribution'

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

processResources.enabled = false

distTar {
    dependsOn bootJar
}

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

configurations {
    customArch
}

artifacts {
    customArch file(distTar.archivePath)
}
...