Gradle: 在构建中包含动态生成的文件?
Gradle: Include dynamically generated file in build?
在我的 gradle 构建过程中,我生成了一个临时 buildinfo.properties
文件,其中包含 Git 提交信息、构建时间等内容。我想在我的输出中包含此文件*.jar
/ *.war
文件作为资源。但是,我 不想 将这个文件放在我的项目 src/
文件夹中(这需要摆弄 .gitignore
并且通常对我来说似乎没有必要) .理想情况下,开发人员根本不应该看到这个文件,它应该只包含在输出存档中。
如何在 Gradle 构建中包含动态生成的文本文件?
将该文件添加到 jar
任务 (Kotlin DSL) 中:
tasks {
val jar by getting(Jar::class) {
from("build/buildinfo.properties")
}
}
它会将 build/buildinfo.properties
文件(假设您使用另一个任务在那里生成它)添加到 JAR 的根目录。
对于动态生成的文件,标准 gradle 处理资源的方法是 gradle 名为 processResources 的任务。你可以这样做:
processResources {
dependsOn taskThatGeneratesYourBuildinfo
from("build/buildinfo.properties") {
into("desired/path/in/jar")
}
}
在我的 gradle 构建过程中,我生成了一个临时 buildinfo.properties
文件,其中包含 Git 提交信息、构建时间等内容。我想在我的输出中包含此文件*.jar
/ *.war
文件作为资源。但是,我 不想 将这个文件放在我的项目 src/
文件夹中(这需要摆弄 .gitignore
并且通常对我来说似乎没有必要) .理想情况下,开发人员根本不应该看到这个文件,它应该只包含在输出存档中。
如何在 Gradle 构建中包含动态生成的文本文件?
将该文件添加到 jar
任务 (Kotlin DSL) 中:
tasks {
val jar by getting(Jar::class) {
from("build/buildinfo.properties")
}
}
它会将 build/buildinfo.properties
文件(假设您使用另一个任务在那里生成它)添加到 JAR 的根目录。
对于动态生成的文件,标准 gradle 处理资源的方法是 gradle 名为 processResources 的任务。你可以这样做:
processResources {
dependsOn taskThatGeneratesYourBuildinfo
from("build/buildinfo.properties") {
into("desired/path/in/jar")
}
}