我有带有子项目的项目 A
A/B 空调
(B 和 C 子项目)。B 和 C 被编译成 A 成一个 Jar 文件。使用下面的代码。
gradle.taskGraph.whenReady {
jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
manifest {
attributes("Main-Class": "brut.apktool.Main")
}
}
}
这很好用,但我在 /a/b/src/main/resources/prebuilt.jar 中有一个预构建的 JAR。这个jar只是封装了我在程序中需要的一些随机文件。没有任何java或任何东西。我从 inputStream 中获取它们,但是在使用 Gradle 构建之后,它会转换二进制换行数据,然后弄乱存档。
我尝试使用构建的 CopyTask 帖子复制 jar,但我永远无法在 gradle.TaskGraph.whenReady 之前运行任务。
回到马文。我只会禁用对该文件的过滤,但在 Gradle 中找不到相同的表达式。
编辑:这是我目前所做的,它将我的更改过滤到属性文件中,但不进行换行过滤。
processResources {
ext.fullrev = ''
ant.loadfile(srcFile: "../../.git/refs/heads/master", property: ext.fullrev)
filter(FixCrLfFilter)
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [version: apktoolversion, gitrev: ant.properties[ext.fullrev].substring(0,10)])
}