gpt4 book ai didi

gradle - 如何在jar资源中扩展属性引用?

转载 作者:行者123 更新时间:2023-12-04 04:25:31 24 4
gpt4 key购买 nike

我正在使用Gradle构建一个在META-INF中包含xml文件的jar。该文件有一行

<property name="databasePlatform" value="${sqlDialect}" />

以允许用于不同环境的不同SQL数据库。我想告诉gradle从项目属性中扩展 ${sqlDialect}

我尝试了这个:
jar {
expand project.properties
}

但它失败并带有 GroovyRuntimeException,在我看来,Jar任务也尝试扩展 .class文件中的属性。所以我尝试了
jar {
from(sourceSets.main.resources) {
expand project.properties
}
}

不会引发上述异常,而是导致所有资源被复制两次-一次进行属性扩展,一次不进行属性扩展。我设法解决了
jar {
eachFile {
if(it.relativePath.segments[0] in ['META-INF']) {
expand project.properties
}
}
}

这可以满足我的要求,因为在用例中,我只需要扩展 META-INF目录中文件的属性即可。但这感觉就像一个丑陋的骇客,是否有更好的方法来做到这一点?

最佳答案

我偶然发现this post涉及另一个不同但密切相关的问题。原来您要配置processResources任务,而不是jar任务:

processResources {
expand project.properties
}

但是由于某种原因,在Gradle注意到更改之前,我确实不得不 clean一次。

关于gradle - 如何在jar资源中扩展属性引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274107/

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