在我简单的 gradle 构建中,我想一起使用 ShadowJar 和 ProGuard。我找到了一些示例,其中 shadowJar 任务的输出是 proguard 的输入,效果很好,但是在我的情况下,我希望首先创建一个小的混淆 jar,在那里我很好地指定了库依赖项并让 proguard 只关注在我的代码上,然后我想将它传递给用于 fatjar 打包的 shadowjar 插件。
我的设置如下:
task obfuscate(type: proguard.gradle.ProGuardTask) {
injars jar
outjars "build/libs/foo-${project.version}-pg.jar"
...
}
shadowJar {
from obfuscate
configurations = [project.configurations.embed]
}
shadowJar.dependsOn obfuscate
我的问题是 shadowJar 输出包含所有未混淆的库(很好)、我的混淆代码(很好)和我的未混淆代码。所以不知何故,原来的课程偷偷溜进来,我不明白这是怎么回事。我无法指定 shadowJar 将依赖项和 proguard 输出 jar 打包在一起。
您看到我的方法中的问题在哪里吗?