升级到 Gradle 7.3 后节点构建失败

Jay*_*ani 5 node.js build.gradle

在 nodeSetup 构建失败并出现以下错误后,我们将 gradle 从 4.8 升级到 7.3。

在 org.gradle.api.internal.artifacts.repositories.DefaultIvyArtifactRepository 类型的对象上找不到参数 [pattern, com.moowork.gradle.node.task.SetupTask$_addRepository_closure5$_closure7@25995910] 的方法布局()。

下面是build.gradle的代码片段。

buildscript {
repositories {
    maven {
        url "https://plugins.gradle.org/m2/"
    }   
}
dependencies {
    classpath "com.moowork.gradle:gradle-node-plugin:1.3.1"
    classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
}
}

apply plugin: "com.moowork.node"
apply plugin: "io.spring.dependency-management"
node {
    version = "16.13.12"
    npmVersion = "6.12.0"
    download = true
    nodeModulesDir = file("/XXX")
}
Run Code Online (Sandbox Code Playgroud)

Bha*_*avi 14

原因: gradle 6.8 中有一个重大更改,您可以在此处查看: https ://docs.gradle.org/current/userguide/upgrading_version_6.html#configuring_the_layout_of_an_ivy_repository

“采用配置块的‘layout’方法已被删除并被‘patternLayout’取代

您的插件“com.moowork.gradle:gradle-node-plugin:1.3.1”正在使用该库中未升级的方法。

解决方案: 您可以使用这个 gradle-node-plugin 而不是“com.moowork.gradle:gradle-node-plugin:1.3.1”

安装: https: //github.com/node-gradle/gradle-node-plugin/blob/master/docs/installation.md 安装节点相关插件可以通过多种方式完成。最简单的方法是在 build.gradle 文件中使用plugins-closure:

plugins {
  id "com.github.node-gradle.node" version "3.1.1"
}
Run Code Online (Sandbox Code Playgroud)

You can also install the plugins by using the traditional Gradle way:

buildscript {
  repositories {
    gradlePluginPortal()
  }

  dependencies {
    classpath "com.github.node-gradle:gradle-node-plugin:3.1.1"
  }
}

apply plugin: 'com.github.node-gradle.node'
Run Code Online (Sandbox Code Playgroud)