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

标签 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'
}

最佳答案

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

gradle -x shadowJar createExe

您也可以像这样永久地做:
gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(createExe)) {
        shadowJar.enabled = false
    }
}

关于gradle - 如何在Gradle中将Launch4J与混淆的jar一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500910/

相关文章:

hibernate - 将Hibernate应用程序部署到Wildfly 10-org.dom4j.DocumentFactory ClassCastException

android - 如何消除android gradle中的默认构建变体

android - 混淆器问题: "java.lang.IllegalArgumentException: Illegal query expression: No hash key condition is found in the query"

android - 三星设备上的 Proguard "Missing type parameter"

python - 如何使用 Pyinstaller 3.0 混淆 python 字节码

language-agnostic - 哪种语言可以保护我的源代码?

gradle - 如何让gradle始终下载最新版本的依赖项?

android - Proguard for Wire + 改造 NoSuchMethodException

java - ProGuard - 如何保留方法并同时混淆它们?

gradle - Gradle从1.3升级到2.6-会影响当前的工作流程和工件输出