我正在使用Gradle构建一个包含xml文件的jar META-INF.这个文件有一行像
<property name="databasePlatform" value="${sqlDialect}" />
Run Code Online (Sandbox Code Playgroud)
允许不同的SQL数据库用于不同的环境.我想告诉gradle ${sqlDialect}从项目属性扩展.
我试过这个:
jar {
expand project.properties
}
Run Code Online (Sandbox Code Playgroud)
但它GroovyRuntimeException似乎失败了,就像Jar任务试图扩展.class文件中的属性一样.所以我试过了
jar {
from(sourceSets.main.resources) {
expand project.properties
}
}
Run Code Online (Sandbox Code Playgroud)
它不会引发上述异常,而是导致所有资源被复制两次 - 一次是属性扩展而一次是没有.我设法解决这个问题
jar {
eachFile {
if(it.relativePath.segments[0] in ['META-INF']) {
expand project.properties
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要的,因为在我的用例中我只需要扩展META-INF目录中文件的属性.但这感觉就像一个非常丑陋的黑客,有没有更好的方法来做到这一点?
gradle ×1