【发布时间】:2013-06-24 11:14:03
【问题描述】:
我正在使用 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 目录中的文件属性。但这感觉就像一个非常丑陋的 hack,有没有更好的方法来做到这一点?
【问题讨论】:
标签: gradle