在Gradle for Maven提供的范围内缺少OOTB支持。 Spring的Gradle propdeps-plugin没有按预期运行

时间:2014-06-29 09:17:10

标签: plugins gradle multi-module

我遇到了Spring.io's plugin。最初看起来很棒。

我在 root build.gradle文件

中定义了以下内容
allprojects  {
    apply plugin: 'maven'
    apply plugin: 'propdeps'
    apply plugin: 'propdeps-maven'
    apply plugin: 'propdeps-idea'

...

    configurations.provided.transitive = true
    configurations.provided.visible = true
}

我有一个具有以下定义的子模块(让我们称之为sub1):

dependencies {
    provided(group: 'org.apache.hadoop', name: 'hadoop-core', version:'1.2.0') {
        exclude(module: 'slf4j-log4j12')
        exclude(module: 'log4j')
    }
...
}

第二个子模块(让我们称之为sub2)依赖于第一个:

dependencies {
    compile project(':sub1')

...
}

当我调用clean build的{​​{1}}任务时,我收到以下错误:

  

/.../.../.../ blahblah.java:12:错误:包org.apache.hadoop.conf   不存在import org.apache.hadoop.conf.Configuration;

sub2

的构建文件中provided范围中指定的jar中存在缺少的导入

我原以为设置如下:

sub1

会做的伎俩(注意:它不会对这些道具的任何值起作用)。

该插件是否已损坏"或者我使用它错了?

1 个答案:

答案 0 :(得分:3)

provided依赖项是传递的compile依赖项。因此,sub1的{​​{1}}依赖关系不会最终导致provided的编译类路径,这并不奇怪。要解决此问题,您需要为sub2sub1声明相关性(例如,在根构建脚本中的sub2下声明它)。