gpt4 book ai didi

gradle - gradle-包括JAR而不过滤二进制换行符

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

我有带有子项目的项目A

A / B
空调

(B和C子项目)。将B和C编译成一个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之前使Task运行。

回到Maven。我只是禁用了对该文件的过滤,但是在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)])
}

最佳答案

好解决了。对于 future 的谷歌人。

processResources {
from('src/main/resources/properties') {
include '**/*.properties'
into 'properties'
ext.fullrev = ''
ant.loadfile(srcFile: "../../.git/refs/heads/master", property: ext.fullrev)
filter(ReplaceTokens, tokens: [version: apktoolversion, gitrev: ant.properties[ext.fullrev].substring(0,10)])
}
from('src/main/resources/') {
include '**/*.jar'
}

includeEmptyDirs = false
}

解释起来很简单。如果文件属于我的* .properties包含,则对其进行过滤等。

如果它属于* .jar,则将其直接复制而不进行过滤。防止graddle / plugin过滤JAR文件中的二进制换行符。

关于gradle - gradle-包括JAR而不过滤二进制换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698167/

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