spring-boot - 使用 Node Js 配置 Spring Boot-Gradle

标签 spring-boot gradle npm

请原谅我显示太多代码,我会显示更多而不是更少

我在尝试配置 build.gradle 时遇到了以下问题:

plugins {
    id 'org.springframework.boot' version '2.2.5.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
    id "com.moowork.node" version "1.3.1"
}

group = 'com.traveling.owl'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

node {
    version = '12.16.1'
    download = true
    workDir = file("${project.projectDir}/src/main/reactjs/nodejs")
    npmWorkDir = file("${project.projectDir}/src/main/reactjs/npm")
    nodeModulesDir = file("${project.projectDir}/src/main/reactjs")
}

task npmInstallDependencies(type: NpmTask) {
    dependsOn 'npmSetup'
    execOverrides {
        it.ignoreExitValue = true
        it.workingDir = 'src/main/reactjs'
    }
    args = ['install']
}

task npmBuild(type: NpmTask) {
    dependsOn 'npmInstallDependencies'
    execOverrides {
        it.workingDir = 'src/main/reactjs'
    }
    args = ['run', 'build']
}

task copyBuild(type: Copy) {
    dependsOn 'npmBuild'
    from "$projectDir/src/main/reactjs/build"
    into "$buildDir/resources/main/static"
}

processResources {
    dependsOn 'copyBuild'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}


这 ( gradle build ) 给出以下错误消息:
xecution failed for task ':nodeSetup'.
> Could not resolve all files for configuration ':detachedConfiguration55'.
   > Could not find org.nodejs:node:v12.16.1.
     Searched in the following locations:
       - https://nodejs.org/dist/vv12.16.1/ivy.xml

但是当我输入 node -v它的输出是:v12.16.1.
似乎 npm 没有看到安装的节点版本?

我尝试重新安装 npm 并没有解决我的问题

OSX 10.14.6 Mojave

最佳答案

据报道,这是 Gradle 6+ 和 Gradle 的 moowork 节点插件之间的不兼容。

要解决它,您有两种选择:

1) 更改属性下载并手动安装所需的节点版本。您的 gradle 节点配置如下所示:

node {
    version = '12.6.1'
    npmVersion = '6.10.2'
    distBaseUrl = 'https://nodejs.org/dist'
    download = false
    workDir = file("${project.buildDir}/nodejs")
    npmWorkDir = file("${project.buildDir}/npm")
    yarnWorkDir = file("${project.buildDir}/yarn")
    nodeModulesDir = file("${project.projectDir}")
}

2)切换到不同的 Gradle - 节点,插件。这在这里解释:https://github.com/srs/gradle-node-plugin/issues/292#issuecomment-562848790

关于spring-boot - 使用 Node Js 配置 Spring Boot-Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604212/

相关文章:

spring-boot - 在 application.properties 文件中使用 tcp 端口 "9300"但仍然得到 "None of the configured nodes are available"

android - 文件或目录 '<project>/<app>/src/debug/java' ,未找到

android - 将变量声明到 build.gradle 中,该变量与带有 flavors 后缀的 applicationId 相匹配

npm - npm 5 可以默认 --no-save 吗?

javascript - 使用 create-react-app react ,不同的 env 文件

javascript - npm 无法构建 socket.io,错误为 "Not compatible with your version of node/npm: commander@0.5.0"

java - 在 Spring Boot 中使用 Jetty 接受代理协议(protocol) V2 流量

spring - 在 Spring Boot 中自动将 Rest Controller 序列化为 CSV 而不是 JSON

java - Spring Boot 应用程序不使用 java -jar 运行

android - 脚本 'C:\tools\flutter\packages\flutter_tools\gradle\flutter.gradle' 行 : 1070