java - 显示本地文件依赖

标签 java gradle 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 输出 classpath。您可以使用这样的任务:

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

当用gradle printClasspath(或在以后的版本中简称为gradle pC)调用时,这个任务将在正则表达式的帮助下“漂亮地打印”类路径, 它会找到用冒号分隔的所有条目。

关于java - 显示本地文件依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29670773/

相关文章:

java - Intellij 想法 : Importing Gradle project - getting JAVA_HOME not defined yet

android - 为什么 appcompat-v7 不能在库模块中使用 compileOnly

java - 如何使用Gradle更改Java属性文件中的值

java - eclipse中maven快照的超时时间是多少?

java - 从 pom.xml 中查找所有可用的依赖项更高版本

dependencies - 安装 RavenDb Embedded 时出现 Nuget 依赖错误

java - 使用 ksoap2 创建多级标签的 Soap 请求

java - 将 If-Else 语句转换为公式

java - JPA - 运行测试用例时未启用编织

java - 编写在持续集成环境中运行的集成测试的最佳实践或有效方法