从gradle中的jar文件中排除模块依赖项

时间:2016-07-09 11:58:11

标签: gradle build.gradle gradlew

所以我在gradle中使用以下命令包含了一个本地jar作为依赖项 - "编译文件(" $ {PathToJar} /name.jar")
现在我想从上面的jar中排除一些模块,就像我们对正常的依赖项排除一样

compile('com.a.b:' + version) {
        exclude group: 'com.google.inject', module: 'guice_servlet'
        exclude group: 'com.google.inject', module: 'guice'
        exclude group: 'io.dropwizard'
        exclude group: 'org.slf4j'
        exclude group: 'log4j'
    }

我google了很多但找不到合适的命令。

1 个答案:

答案 0 :(得分:2)

Gradle中无法直接实现您想要实现的目标。

ModuleDependency.exclude(Map)用于排除传递依赖关系。这意味着如果依赖关系依赖于另一个依赖关系(JAR),Gradle会有效地创建依赖关系树。通过使用exclude()方法,您可以从树中删除依赖项。

但是,如果您有UberJar,则依赖项(类)将捆绑在JAR本身中。所以你不能使用exclude()来排除JAR本身的类,它只能用于从树中排除JAR。