显示本地文件依赖

Displaying local file dependencies

我创建了一个小型测试构建文件来分析我刚刚发现的行为,我不确定这是我的错误还是标准的 gradle 行为。

我刚开始将一个旧的 ant 项目迁移到 gradle。第一步是将所有 jar 文件复制到本地并创建本地文件依赖项。 我试图检查依赖项声明,但 gradle dependencies 它们不会显示。

我创建了一个小测试gradle脚本:

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'

    //compile fileTree('tmp_libs')
    compile files('tmp_libs/hsqldb/hsqldb_2.2.8.jar')

    testCompile 'junit:junit:4.12'
}

当 运行 gradle dependencies 我可以看到 slf4j 依赖项但看不到 hsqldb 依赖项。 我做错了什么,还是不显示本地文件依赖关系只是正常的 gradle 行为?有没有其他方法可以检查依赖声明是否有效?

似乎gradle dependencies 将无法从本地添加的 jar 中检索依赖关系树信息。

但是,如果您使用的是 IntelliJ IDEA 或 Ecplise,您将在分别使用 gradle ideagradle eclipse 构建后在构建路径中看到它们。

另一种查看依赖项声明是否有效的方法是通过 gradle 输出 类路径 。您可以使用这样的任务:

task printClasspath << {
  (configurations.runtime.asPath =~ /(?<jar>[^:]+)/).each {match, jar ->
    println jar
  }
}

当使用 gradle printClasspath 调用它时(或在更高版本中简称为 gradle pC),此任务将 "pretty print" 类路径借助正则表达式查找所有条目用冒号分隔。