为什么我的依赖打印两次?

时间:2014-05-06 10:21:44

标签: gradle

我有以下相当简单的build.gradle构建脚本:

repositories {
  mavenCentral()
}

configurations { libs }

dependencies {
  libs 'org.hibernate:hibernate-core:4.3.5.Final'
}

configurations.libs.files { println it }

当我使用gradlew build运行时(我正在使用 Gradle 1.12 ,目前最新版本),我得到以下内容:

DefaultExternalModuleDependency{group='org.hibernate', name='hibernate-core', version='4.3.5.Final', configuration='default'}
DefaultExternalModuleDependency{group='org.hibernate', name='hibernate-core', version='4.3.5.Final', configuration='default'}

这些似乎是相同的依赖项,但我不明白为什么当我只添加一个时,有两个。

有谁知道为什么?我做错了什么?或者有什么我不明白的东西?

1 个答案:

答案 0 :(得分:1)

Configuration#files方法需要谓词。 (有关API详细信息,请参阅Gradle Build Language Reference中的Configuration。)如果您传递一个包含println语句的闭包,(看似)会发生奇怪的事情。您可能需要以下内容:

// configurations should only be resolved in 
// the execution phase, so let's declare a task
task printLibs {
    doLast {
        configurations.libs.each { println it }
    }
}