Gradle 升级 7.2 > 7.3 中断,“此属性的值是最终的,不能进一步更改”(使用 Micronaut 插件?)

2024-04-23

我使用 Micronaut 3.1.3 和 Gradle 7.2 来构建我的项目。

After 切换到 Gradle 7.3,内置中断会发出一些上下文无关的错误消息:

$ ./gradlew clean build
Executed by Gradle 7.3
- using Java 11.0.13
- using Kotlin 1.5.31
- using Groovy 3.0.9

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project '[PROJECT]'.
> The value for this property is final and cannot be changed any further.

With --stacktrace出现一条很长的痕迹。下面的摘录让我猜测 问题可能出在 Micronaut 插件上:

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project '[PROJECT]'.
        at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:75)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:68)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:51)
        [...]
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
Caused by: java.lang.IllegalStateException: The value for this property is final and cannot be changed any further.
        at org.gradle.api.internal.provider.AbstractProperty$FinalizedValue.beforeMutate(AbstractProperty.java:489)
        at org.gradle.api.internal.provider.AbstractProperty.assertCanMutate(AbstractProperty.java:263)
        at org.gradle.api.internal.provider.AbstractProperty.setSupplier(AbstractProperty.java:212)
        at org.gradle.api.internal.provider.DefaultProperty.set(DefaultProperty.java:71)
        at org.gradle.api.tasks.testing.Test.useTestFramework(Test.java:979)
        at org.gradle.api.tasks.testing.Test.useJUnitPlatform(Test.java:1049)
        at org.gradle.api.tasks.testing.Test.useJUnitPlatform(Test.java:1032)
        at io.micronaut.gradle.MicronautLibraryPlugin.lambda$null$1(MicronautLibraryPlugin.java:103)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:123)
        [...]
        at org.gradle.api.internal.DefaultDomainObjectCollection.withType(DefaultDomainObjectCollection.java:201)
        at io.micronaut.gradle.MicronautLibraryPlugin.lambda$apply$4(MicronautLibraryPlugin.java:101)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:123)
        [...]
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)

原因“配置根项目时出现问题”我不确定我的哪一部分build.gradle提出了问题。所以根据我对 Micronaut 的第一个猜测 插件,这里是一个摘录,告诉您正在使用的插件列表和该插件的配置:

plugins {
  id('org.jetbrains.kotlin.jvm') version "${kotlinVersion}"
  id('groovy')
  id('org.jetbrains.kotlin.kapt') version "${kotlinVersion}"
  id('com.github.johnrengelman.shadow') version '7.+'
  id('io.micronaut.application') version '2.+'
  id('org.jetbrains.kotlin.plugin.allopen') version "${kotlinVersion}"
  id('com.google.cloud.tools.jib') version '3.+'
  id('org.openapi.generator') version '5.+'
  id('com.heroku.sdk.heroku-gradle') version '2.+'
}

[...]

micronaut {
  runtime('netty')
  testRuntime('spock2')
  processing {
    incremental(true)
    annotations('[PACKAGE]')
  }
}

也许这提供了足够的信息来解决问题的原因? 如果没有,请告诉我。

Regards


我在 Java 构建中遇到了同样的问题,并在 gradle slack 频道上寻求帮助。发现这是 Gradle 7.3 行为的变化。

这个问题包含了原因的解释 https://github.com/gradle/gradle/issues/18606以及如何修复它。 它帮助我解决了我的构建问题:我有options在测试任务之一中定义,然后useJUnitPlatform之后使用以下代码片段应用于所有测试任务:

tasks.withType(Test).configureEach {
  useJUnitPlatform()    // <-- this line was breaking the build
}

这破坏了迁移到 Gradle 7.3 后的构建。去除options为我解决了问题。

Here's 请求将此破坏行为转换为警告的问题 https://github.com/gradle/gradle/issues/19058在 Gradle 7.3 中,并在 8.0 中进行重大更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle 升级 7.2 > 7.3 中断,“此属性的值是最终的,不能进一步更改”(使用 Micronaut 插件?) 的相关文章

随机推荐

  • 在运行时执行 C# 或 VB.NET 代码

    最近在 Codility com 上花了一些时间 我突然想到了这个问题 它们如何执行您创建的代码 特别是与 C 和 VB NET 有关的代码 我基本上想知道的是 如何在表单上的文本框中输入一些代码 然后运行该代码 如果没有第三方工具 这可能
  • 为 Windows 开发计划任务

    我必须使用 C net 开发一个必须每天运行一次的应用程序 它最多只运行一分钟 因此开发 Windows 服务有点大材小用 计划任务是合适的方法 但是 我对应用程序如何传达其结果有一些疑问 如何向任务调度程序指示任务失败 这是通过程序的退出
  • 查找包含“inf”或“nan”的项目的索引

    以下是一个示例1 item在我的清单中 array 1 2 3 43 83 92 12 54 93 23 94 83 23 inf inf inf inf inf 83 33 33 83 13 83 83 nan 83 73 43 43 4
  • 如何避免实体框架 TPT 继承中的多态行为,以便有效地查询基类型

    Overview 我首先使用实体 框架 4 3 代码和流畅的界面来设置我的 DbContext 我有一个基地Item具有继承此类型的其他类型的类 例如Event BlogPost 论坛主题 WikiPage等等 这些继承的类型与我认为实体框
  • React-relay 嵌套突变后未获取有效负载

    这是一个后续问题这个答案 https stackoverflow com a 34776023 2030321早些时候在 SO 上发布了有关反应中继突变警告的文章 在这种情况下 您需要做的是将 FeatureLabelNameMutatio
  • 如何在 for 循环中安全地从数组中删除项目?

    完全透露 这是一个家庭作业问题 它应该有一个 Circle 类型的私有属性 一系列圆圈 该方法应删除半径大于的任何圆 最小要求 并且小于最大要求 看来我应该使用removeAtIndex 删除不满足循环中确定的条件的数组项 然而 许多人之前
  • Android 使用广播检查互联网连接

    我想实现一个广播接收器来检查互联网连接 如果连接不存在 只需完成 它 但我还是搞乱了上下文 请检查我下面的代码 This broadcast receiver is awoken after boot and registers the s
  • MongoDB 中的多对多更新无需事务

    我有两个具有多对多关系的集合 我想在两个文档中存储链接的 ObjectId 数组 以便我可以获取文档 A 并快速检索所有链接的文档 B 反之亦然 创建此链接分为两个步骤 将文档 A 的 ObjectId 添加到文档 B 将文档 B 的 Ob
  • 如何使用生物指纹识别器开发指纹数据库

    我购买了一个简单的生物识别指纹读取器 通常用于通过 USB 连接确保笔记本电脑的安全 它只是被称为生物指纹识别器 而不是品牌 它附带了为笔记本电脑创建安全性的软件 而且效果很好 然而 我对此有不同的想法 我打算创建一个用户指纹数据库 以便我
  • HTTP 错误 500.22 - 内部服务器错误(已检测到不适用于集成托管管道模式的 ASP.NET 设置。)

    当我查看应用程序时 我收到此错误 HTTP 错误 500 22 内部服务器错误 已检测到不适用于集成托管管道模式的 ASP NET 设置 安装了 Net Framework 2 0 3 5和4 并且我使用的是SQL 2008 谁能告诉我这个
  • MVP 和 GWT 小部件之间的通信

    如果我将 MVP 模式与 GWT 结合使用 如 2009 年 Google I O 中的 GWT 架构最佳实践讨论 但已将信息分散到多个小部件中 那么应该如何填充值对象 假设我有一个 EditPersonView Presenter 一个
  • GitLab 在 Debian 上安装失败

    我正在尝试在 Debian 8 5 0 上安装 GitLab 我遵循安装指南 https about gitlab com downloads debian8但最后一步失败了 我在文档中找不到任何信息 gitlab ctl 重新配置完成 R
  • BASH - 读取具有相同“变量”的多个实例的配置文件

    我正在尝试读取配置文件 然后将配置的 部分 放入 bash 脚本中的数组中 然后运行命令 然后再次重复配置 并继续执行此操作 直到配置文件的末尾 这是一个示例配置文件 PORT 5000 USER nobody PATH 1 OPTIONS
  • Flutter 区域设置日期字符串到日期时间

    我想将日期 String 转换为 DateTime 对象 字符串包含土耳其语月份名称 如下所示 我的字符串 来自 API 10 Mart 2021 16 38 我的区域设置 土耳其 tr 我怎样才能转换 感谢您 尝试以下操作 只有 en U
  • 读取 URL 查询参数值 (Vue.js)

    在 vuejs 回调 URL 中 我有一些参数值 我需要读取这个参数值 例如返回url是 http localhost 8080 sucesspage encryteddata abdeshfkkilkalidfel 9a 我努力了this
  • std::vector::insert 的重载解析如何工作

    这是三分之二insert来自 std vector 的方法签名 void insert iterator position size type n const value type val template
  • Python内部结构[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以指导我阅读在线文档或书籍 在那里我可以找到并了解 C 中的 Python 实现 例如 Per
  • Python 变量在不应该改变的时候发生改变

    我正在处理的代码正在更改我的临时变量 但我不知道如何阻止它 本质上 问题是这样的 def example array temp array for i in range whatever change array 我需要更改数组 但保持温度
  • 无法为 Android 源代码创建 Xamarin 组件

    我已经使用了命令 xamarin component exe package C cmp AndroidComponent component 用于创建 Xamarin 组件 在构建示例 android 项目时 它显示以下错误 我已使用命令
  • Gradle 升级 7.2 > 7.3 中断,“此属性的值是最终的,不能进一步更改”(使用 Micronaut 插件?)

    我使用 Micronaut 3 1 3 和 Gradle 7 2 来构建我的项目 After 切换到 Gradle 7 3 内置中断会发出一些上下文无关的错误消息 gradlew clean build Executed by Gradle