gpt4 book ai didi

java - 如何为多个项目创建 Gradle sharedManifest?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:19 25 4
gpt4 key购买 nike

我有多个 java 项目。这些项目正在使用 gradle 创建 jar、war 和 ear 文件。在每个项目中,我都使用 list 文件来维护元数据,如版本、日期时间……为此,我在每个 build.gradle 文件中包含了 list 文件创建逻辑。

manifest {
attributes(
'Bundle-Vendor' : "$BUNDLE_VENDOR",
'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"))
}

但是在 Gradle 中有一个功能调用 sharedManifest。我在主项目 build.gradle 脚本中定义了以下两个任务。但是在每个 jar 和 war 文件中都有 Gradle 创建的默认 MANIFEST.MF 文件。

ext.sharedManifest = manifest {

attributes(
'Bundle-Vendor' : "$BUNDLE_VENDOR",
'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
)
}

task fooJar(type: Jar) {
manifest = project.manifest {
from sharedManifest
}
}

task fooWar(type: War) {
manifest = project.manifest {
from sharedManifest
}
}

jar.manifest.writeTo("/MANIFEST.MF")war.manifest.writeTo("/MANIFEST.MF")

请有人能给出如何做到这一点的建议。

最佳答案

在构建中共享 list 逻辑的最简单方法是配置规则,例如:

allprojects {
tasks.withType(Jar) { // includes War and Ear
manifest {
attributes ...
}
}
}

关于java - 如何为多个项目创建 Gradle sharedManifest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com