如何在 Gradle 中使用带有混淆 jar 的 Launch4J
How to use Launch4J with obfuscated jar in Gradle
我正在尝试使用经过混淆处理的 jar 使用 Launch4J 创建可执行文件,但我遇到了问题。每次我通过 Gradle 运行 createEXE
任务时,shadowJar 任务也会 运行 导致我混淆的 jar 被覆盖。
如何将混淆后的 jar 与 Launch4J 的 createExe
任务一起使用?否则如何在 createExe
执行期间从 运行ning 停止 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'
}
您应该使用 -x
选项忽略 shadowJar
任务。它告诉 Gradle 跳过指定的任务。
gradle -x shadowJar createExe
你也可以这样永久地做:
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(createExe)) {
shadowJar.enabled = false
}
}
我正在尝试使用经过混淆处理的 jar 使用 Launch4J 创建可执行文件,但我遇到了问题。每次我通过 Gradle 运行 createEXE
任务时,shadowJar 任务也会 运行 导致我混淆的 jar 被覆盖。
如何将混淆后的 jar 与 Launch4J 的 createExe
任务一起使用?否则如何在 createExe
执行期间从 运行ning 停止 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'
}
您应该使用 -x
选项忽略 shadowJar
任务。它告诉 Gradle 跳过指定的任务。
gradle -x shadowJar createExe
你也可以这样永久地做:
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(createExe)) {
shadowJar.enabled = false
}
}