【问题标题】:Exclude module dependencies from jar file in gradle从 gradle 中的 jar 文件中排除模块依赖项
【发布时间】:2016-11-11 21:40:51
【问题描述】:

所以我在 gradle 中使用以下命令包含了一个本地 jar 作为依赖项 -
"compile files("${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'
    }

我搜索了很多,但找不到合适的命令。

【问题讨论】:

  • 我没有关注。您想从本地 JAR 中排除“模块”。 Gradle 如何知道包含本地 JAR 的传递依赖项?
  • 我从我的另一个项目中创建了一个 uber jar,并作为库包含在我当前的项目中。现在从那个 uber jar 中,我想排除一些模块。据我所知,uber jar 包含所有传递依赖项,不是吗?

标签: gradle build.gradle gradlew


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2015-05-15
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多