gpt4 book ai didi

java - Ant 到 Gradle 转换 : Obfuscation and Jar

转载 作者:行者123 更新时间:2023-11-30 02:48:20 25 4
gpt4 key购买 nike

我正在执行 ant 到 gradle 的迁移。我认为我被困在一些相当基本的事情上。我有一个执行以下操作的 .xml 脚本:

<target name="ANTtarget">
<proguard
...
<libraryjar dir="otherfiles/here" />
<outjar name="some.jar"/>
...
</proguard>

<jar destfile="some.jar" update="yes" >
<manifest>
<attribute name="Main-Class" value="some.package.here" />
</manifest>
<zipgroupfileset dir="otherfiles/here" includes="**/*.jar" />
</jar>
</target>

因此,使用 proguard,类会被混淆然后打包。我能够完成相同的混淆,但无法完成 jar-ing。我怀疑这是因为 gradle 的 jar 任务中没有 'update="yes"' 功能。

等级代码:

task GRADLEtask(type: proguard.gradle.ProGuardTask) {
...
outjar: "some.jar"
...
}

更新 jar 有任何解决方案或解决方法吗?也许在我处于混淆状态时编辑 list ? (这里的想法是任务/目标输出是相同的。)

编辑:

普通的 jar 类型任务工作正常;在 jar 任务中错误地引用了“otherfiles/here”。

引用代码:

[你可能不会遇到同样的问题,因为你很聪明。]

task JARitUP (type: Jar, dependsOn: 'GRADLEtask') {
baseName = "some2"

from zipTree('some.jar')
//get all the library jars
def MYjars = fileTree(jarPlace).filter { it.name.endsWith('.jar') }.files.path
MYjars.each { THISjar -> from zipTree("$THISjar") }

manifest {
attributes 'Main-Class': 'some.package.here'
}
}

最佳答案

类似于:

apply plugin: 'java'

configurations {
proguard
}

dependencies {
"com.foo:proguard:1.2.3"
}

jar {
manifest {
attributes('Main-Class': 'some.package.here')
}
}

task proguard {
inputs.file jar.archivePath
outputs.file jar.archivePath // is this correct?
doLast {
ant.taskdef(name: 'proguard', classname: 'foo.bar.ProguardTask', classpath: configurations.proguard.asPath)
ant.proguard {
libraryjar(dir: 'otherfiles/here') // not sure what this does
outjar(name: jar.archivePath)
}
}
}
assemble.dependsOn proguard
proguard.dependsOn jar

关于java - Ant 到 Gradle 转换 : Obfuscation and Jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491057/

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