【问题标题】:Is there a Gradle task to download testRuntime dependencies?是否有 Gradle 任务来下载 testRuntime 依赖项?
【发布时间】:2017-01-05 00:15:01
【问题描述】:

是否有命令指示 Gradle 解析并下载所有 testRuntime 依赖项,但不运行测试?

最好,我想在不编写自定义任务的情况下执行此操作(这样该命令可以针对 任何 Gradle 项目运行)。

例如,如果我的build.gradle 有这个依赖:

dependencies {
    // ...
    testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
}

在我运行 gradle test 之前,不会下载与 selenium-htmlunit-driver 关联的 JAR 文件,这也运行测试。我可以通过运行gradle testClasses 下载所有其他依赖项,但不能通过testRuntime 下载。

【问题讨论】:

标签: gradle


【解决方案1】:

将以下内容放入名为resolve.gradle的文件中

gradle.allprojects { project ->
    project.task('resolveTestRuntime') {
        doLast {
            project.configurations.testRuntime.resolve()
        }
    }
}

然后将resolve.gradle 作为init script 运行

gradlew --init-script resolve.gradle resolveTestRuntime

【讨论】:

  • 我不认为这是一个有效的初始化脚本。似乎 task 是不允许的。我错了吗?
  • 正确...初始化脚本在范围内有一个 Gradle 实例,而 build.gradle 在范围内有一个 Project
【解决方案2】:

将答案从 Lance Java 修改为有效的 Init 脚本,我可以使用以下 resolve.gradle 完成此操作:

apply plugin:MyInitPlugin

class MyInitPlugin implements Plugin<Gradle> {
  @Override
  void apply(Gradle gradle) {
    gradle.allprojects{ project ->
      project.task('resolveTestRuntime') {
        doLast {
          project.configurations.testRuntime.resolve()
        }
      }
    }
  }
}

然后运行:

gradlew --init-script resolve.gradle resolveTestRuntime

【讨论】:

  • 你不需要插件...你可以使用gradle.allprojects { ... }sn-p
  • 谢谢。如果你想用这个来编辑你的答案,我会接受的。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 2015-03-20
  • 2016-09-30
  • 2023-04-08
相关资源
最近更新 更多