- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个gradle构建,它可以动态创建GradleBuild类型的多个任务,以与不同的客户端库版本一起运行以测试其兼容性。在Gradle4上可以正常工作,但是在移至Gradle5后,执行第一项任务后出现Cannot lock buildSrc build lock as it has already been locked by this process.
错误。因此,目录是由首次构建锁定的,因此不会释放。您能否建议如何解决此问题?
就是这样
task testAll {
dependsOn clientVersions.collect { "runTestsWithClient$it" }
clientVersions.forEach { version ->
task "runTestsWithClient$version"(type: GradleBuild) {
buildFile = "build.gradle"
tasks = ["testClient"]
startParameter.projectProperties = [clientVersion: version]
}
}
}
最佳答案
我建议不要在单独的GradleBuild
任务中运行这些测试。我宁愿尝试从共享任务模板为每个测试设置本地Test
任务;这些Test
任务将仅在测试类路径中有所不同。
为了确保不同的客户端版本依赖性不会受到干扰,我将为每个客户端版本分别生成单独的配置,然后在其中添加依赖性。
这是应该与Gradle 5.6.1(可能更早)配合使用的基本示例:
plugins {
id 'java'
}
repositories {
ivy {
url = 'file:///tmp/my-repo'
}
jcenter()
}
dependencies {
testImplementation 'junit:junit:4.12'
}
def clientVersions = [1, 2, 3]
task('testAll')
clientVersions.each { v ->
def configName = "myConfig$v"
def config = configurations.create(configName)
dependencies.add(configName, "com.example:foo:$v")
def taskName = "testClient$v"
task(taskName, type: Test) {
classpath += config
// TODO use other shared test configuration such as:
// filter { includeTestsMatching "*.ClientCompatibilityTest" }
}
testAll.dependsOn taskName
}
关于gradle - 如何使用Gradle 5和GradleBuild任务修复错误 'Cannot lock buildSrc build lock as it has already been locked by this process.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57695267/
我的目标是拥有一个其他构建文件可以在 gradle 中看到的通用类。我创建了一个名为 buildSrc 的文件夹,它位于我的 android 项目的根目录中。内容如下所示: class Cou
我们有一个 Gradle 构建,其中包括 buildSrc带有一些自定义插件。这些插件还适用于其他插件。例如,我们的插件适用于 com.android.tools.build:gradle .对于注释
我有一个单一的build.gradle构建一个应用程序。它由几个任务组成(缩小、合并文件、gzip、上传到 CDN、调用外部脚本等) 我设法将所有内容移至 build.gradle到 buildsrc
我需要读取位于 buildSrc 特殊模块的 resources 文件夹内的属性文件来创建其他项目模块可以访问的 kotlin 对象。我试着把这个属性文件放在一起 在根项目文件夹中(这种情况有时有效有
将我的 gradle gradle-5.4.1 升级到 gradle-6.3 后,我收到了类似 的错误'buildSrc' 不能用作项目名称,因为它是保留名称。 我正在使用 buidleSrc 进行
我正在尝试切换到使用 Kotlin DSL 从对象 Kotlin 文件而不是 gradle 文件获取依赖项版本。当我执行 gradle sync 时,它无法解析引用,但我可以从 build.gradl
我有一个具有 buildSrc 目录的 Gradle 项目。主项目和 buildSrc 项目都需要知道 Artifactory 服务器的 URL。我希望将 URL 保存在一个地方,并且希望将其保存在源
在 gradle 中,使用 buildSrc 的目的是什么?文件作为顶级文件,而不是典型的 java 项目布局(src/main/java)? 如果我有一个布局 src main j
我有一个非常典型的 Gradle 库项目,其中包含一组依赖于一些常见配置的模块(Android 或纯 Java)。 这个通用配置被抽象为一个“publishConfig.gradle”文件(在需要它的
我正在尝试创建一个 Flavor 配置以避免每个模块和库 gradle 文件中的样板代码。 为此,我正在尝试转换 Piotr Zawadzki 解决方案 ( https://medium.com/st
假设我有一些类包含我想在 Gradle 构建期间和 Java 应用程序本身中使用的逻辑。如何配置 Gradle 构建以在构建和正在构建的项目之间共享相同的类,例如使用 Kotlin DSL? 最佳答案
我正在为我的公司编写一个自定义 Gradle 插件,以协助对我们的产品进行集成测试。我的团队希望在主要产品构建中构建和使用该插件(就像“buildSrc”插件一样),但还需要将该插件作为工件发布,以供
我有一个工作 build.gradle我想重构到 buildSrc 目录中,但找不到依赖项。 工作 build.gradle: import groovyx.net.http.HTTPBuilder
我在 buildSrc 构建中有一些相当长的测试,有时我想在开发过程中跳过这些测试,以查看模板更改的效果。它是一个报告生成器,有时我只想调整模板而不必更新所有测试;然后当我对输出感到满意时我会更新它们
我有一个需要自动生成类的 Android 库项目。此类是在构建期间使用放置在 Library 项目的 buildSrc 目录中的 Groovy 脚本生成的。这本身就可以正常工作。 然后我有一个使用该库
我在 Android Studio 中创建了一个新项目并将 gradle buildscript 转换为使用 kotlin dsl,如下所示: build.gradle.kts(项目) buildsc
我正在使用 buildSrc多模块 Kotlin 项目中的模块到 manage dependency definitions and versions .该模块使用kotlin-dsl如build.g
我有 多项目建在 buildSrc 目录 buildSrc ---build --- subProject1 ----build (2)
我有一个 gradle 项目,正在创建一个自定义插件来做一些额外的构建工作。插件的源文件存储在 buildSrc/ 中。 .我有基本的框架工作,我可以通过运行 gradle tasks 查看插件任务。
我关注 this tutorial关于如何在我的 Android 应用程序中使用 Kotlin 管理 Gradle 依赖项,现在我想在我的应用程序模块中使用我的 Versions 对象中定义的版本(场
我是一名优秀的程序员,十分优秀!