【发布时间】:2019-04-29 06:24:09
【问题描述】:
我正在尝试使用我的混淆 jar 使用 Launch4J 创建一个可执行文件,但我遇到了问题。每次我通过 Gradle 运行 createEXE 任务时,shadowJar 任务也会运行,导致我的混淆 jar 被覆盖。
如何将我的混淆 jar 与 Launch4J 的 createExe 任务一起使用?否则在createExe执行期间如何阻止shadowJar运行?
这是我的 Launch4J 任务:
launch4j {
jar = "${projectDir}/build/libs/plugin.jar"
outfile = 'Plugin.exe'
icon = "${projectDir}/etc/icon.ico"
mainClassName = 'plugin.Driver'
bundledJrePath = './jre'
jreMinVersion = '1.8.0_161'
jdkPreference = 'preferJdk'
}
【问题讨论】:
-
所以你正在使用 shadowJar 但还有一个来自其他地方的混淆 jar?是什么产生的?
-
@ToYonos 我运行 shadowJar 来创建一个包含所有依赖项的 jar。然后我通过它的gui使用proguard混淆了那个jar。我稍后会将其集成到 Gradle 中。当我运行 createExe 任务时,它会重新运行 shadowJar,因此会覆盖并创建非混淆 jar 的可执行文件
-
试试
gradle -x shadowJar createExe -
@ToYonos 它看起来有效:) 你想回复作为答案,以便我可以标记它吗?还有 -x 究竟做了什么?
标签: gradle proguard obfuscation launch4j shadowjar