首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle ShadowJar输出包含模糊和非模糊类

Gradle ShadowJar输出包含模糊和非模糊类
EN

Stack Overflow用户
提问于 2017-04-27 04:06:25
回答 1查看 1K关注 0票数 1

在我的简单gradle构建中,我希望同时使用ShadowJar和ProGuard。我有found examples,其中shadowJar任务的输出是proguard任务的输入,它工作得很好,但是在我的例子中,我更喜欢首先创建一个小的混淆jar,在那里我很好地指定库依赖关系,让proguard只关注我的代码,然后我想把它传递给shadowjar插件进行fatjar打包。

我的设置如下:

代码语言:javascript
复制
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打包在一起。

你看到我的方法中的问题在哪里了吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-21 14:12:42

试试这个,对我很管用:

代码语言:javascript
复制
task shadowJar2( type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar ) {
    baseName = jar.baseName
    from obfuscate
    configurations = [project.configurations.embed]
    classifier = 'shadow'
    //version =
}

问题是,默认的shadowJar任务除了模糊的+库jars之外,还会获取您的“主”源集。通过定义您自己的自定义'shadowJar2‘任务,您可以显式地定义您的源,在这种情况下,它只是jars ('obfuscate’+ 'embed')而不是一个源集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43643609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档