似乎正在发生的事情是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本身也使用过的库时,我都不想单独追踪。