我想从Spring Boot应用程序中的内置包中创建一个tar文件。我的构建文件如下所示:
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文件和一个带有jar文件的单独的lib目录。如果您能帮助我了解问题所在,我们将不胜感激。我怀疑出于某种原因,发行版会在构建之前运行,因此它没有可用的lib目录。
答案 0 :(得分:1)
要实现目标目录结构,应按以下步骤更改分发封包: (注意:我假设您的application.yaml位于资源目录下。)
distributions {
main {
baseName = "${project.name}"
contents {
into('/conf'){
from('src/main/resources')
}
into('/bin'){
from('build/libs')
}
}
}
}
要在制作tar文件之前构建jar文件,应按以下方式修改distTar
任务:
distTar {
dependsOn bootJar
}