如何在Gradle中将Launch4J与混淆的jar一起使用

时间:2018-11-27 13:33:23

标签: gradle proguard obfuscation launch4j shadowjar

我正在尝试使用混淆后的jar使用Launch4J创建可执行文件,但是出现问题。每次我通过Gradle运行createEXE任务时,shadowJar任务也会运行,从而导致混淆的jar被覆盖。

如何将混淆的jar与Launch4J的createExe任务一起使用?否则在执行shadowJar期间如何停止运行createExe

这是我的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'
}

1 个答案:

答案 0 :(得分:1)

您应该只使用shadowJar选项忽略-x任务。它告诉Gradle跳过指定的任务。

gradle -x shadowJar createExe

您也可以像这样永久地做:

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(createExe)) {
        shadowJar.enabled = false
    }
}