Gradle插件构建会引入错误版本的commons-io

时间:2014-07-26 00:07:57

标签: gradle dependency-management

似乎正在发生的事情是compileJava从gradle分布中引入commons-io-1.4.jar,而不是我声明的commons-io:commons-io:2.4。当我尝试调用更高版本中引入的方法(readLines(InputStream, Charset))时,Gradle无法找到它:

$ gradle compileJava
:compileJava
/home/dmoles/Projects/m12n-plugins/tools/m12n/multiproject-plugin/src/main/java/m12n/tools/multiproject/dependencies/DependencyExtractor.java:42: error: no suitable method found for readLines(ByteArrayInputStream,Charset)
            List<String> lines = IOUtils.readLines(new ByteArrayInputStream(stream.toByteArray()), Charsets.UTF_8);
                                        ^
    method IOUtils.readLines(Reader) is not applicable
      (actual and formal argument lists differ in length)
    method IOUtils.readLines(InputStream,String) is not applicable
      (actual argument Charset cannot be converted to String by method invocation conversion)
    method IOUtils.readLines(InputStream) is not applicable
      (actual and formal argument lists differ in length)
1 error
:compileJava FAILED

FAILURE: Build failed with an exception.

dependencies(缩写)的build.gradle部分:

dependencies {
  compile 'commons-io:commons-io:2.4'
  compile gradleApi()
  compile localGroovy()
}

gradle dependencies显示正确的事情:

+--- commons-io:commons-io:2.4

显然在这种特殊情况下,我可以通过调用旧方法来解决它,但是有一般的解决方法吗?每次我碰巧使用Gradle本身也使用过的库时,我都不想单独追踪。

0 个答案:

没有答案