我遇到了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
会做的伎俩(注意:它不会对这些道具的任何值起作用)。
该插件是否已损坏"或者我使用它错了?
答案 0 :(得分:3)
provided
依赖项是不传递的compile
依赖项。因此,sub1
的{{1}}依赖关系不会最终导致provided
的编译类路径,这并不奇怪。要解决此问题,您需要为sub2
和sub1
声明相关性(例如,在根构建脚本中的sub2
下声明它)。