首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与npm网络应用集成,与gradle集成spring引导?

如何与npm网络应用集成,与gradle集成spring引导?
EN

Stack Overflow用户
提问于 2017-10-08 09:38:40
回答 1查看 7.9K关注 0票数 3

请帮助我集成节点ui模块和Spring引导使用gradle。

我只想用web文件部署war文件。

我的项目结构就像

代码语言:javascript
复制
myproject
    api
        src/main/java
        src/main/resources
        build/libs
    web
        <--- node files
        dist
        build/libs
    gradle
    build.gradle
    gradlew
    gradlew.bat
    settings.gradle

api模块是rest应用程序.

web模块是npm节点应用程序。

我想做这件事。

  1. 如果我输入./gradlew clean build
  2. 然后:web项目首先编译并创建dist目录,然后生成jar文件。
  3. 然后:api项目使用这个jar文件进行战争。我将把api war部署到服务器上。

也许上面的步骤是不对的,因为我不擅长。

我应该如何编写代码才能做到这一点?我必须在一个build.gradle文件中编写脚本。只有一个build.gradle文件。我只能用这个文件。

代码语言:javascript
复制
buildscript {
  ext {
    springBootVersion = '1.5.7.RELEASE'
  }
  repositories {
    mavenCentral()
        maven { url 'http://repo.spring.io/plugins-release'}
        maven { url "https://plugins.gradle.org/m2/" }

  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath 'io.spring.gradle:propdeps-plugin:0.0.9.RELEASE'
        classpath "com.moowork.gradle:gradle-node-plugin:1.2.0"
  }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'eclipse'

    group = 'com.example'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = 1.8

    repositories {
        mavenCentral()
    }
}


project('api') {
    apply plugin: 'org.springframework.boot'

    apply plugin: 'war'
    apply plugin: 'propdeps'

  dependencies {
        compile project(':web')

    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('org.springframework.boot:spring-boot-devtools')
    compileOnly('org.projectlombok:lombok')
    testCompile('org.springframework.boot:spring-boot-starter-test')

        optional('org.springframework.boot:spring-boot-configuration-processor')
  }

    compileJava.dependsOn(processResources)
}

project('web') {
    apply plugin: 'com.moowork.node'

    node {
        version = '6.11.4'
        npmVersion = '3.10.10'
        download = true
        distBaseUrl = 'https://nodejs.org/dist'
    }

    task nodeBuild(type: NpmTask) {
        args = ['run', 'build']
    }

    jar {
        from ("dist/")
        into ("${rootProject.project('api').projectDir}/src/main/resources/")
        includeEmptyDirs = true
    }
    clean {
        delete 'dist/'
    }

    nodeBuild.dependsOn(npm_install)
    build.dependsOn(nodeBuild)
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-08 12:09:40

看一看分级节点插件

将其包含在构建依赖项中:

代码语言:javascript
复制
buildscript {
  ...

  dependencies {
    classpath "com.moowork.gradle:gradle-node-plugin:1.1.1"
  }
}

应用插件:

代码语言:javascript
复制
apply plugin: 'com.moowork.node'

配置它以适应您的项目结构:

代码语言:javascript
复制
node {
  version = '6.10.2'
  npmVersion = '3.10.6'
  download = true
  workDir = file("${project.buildDir}/node")
  nodeModulesDir = file("${project.projectDir}")
}

提供运行NPM的分级任务:

代码语言:javascript
复制
task build(type: NpmTask) {
    args = ['run', 'build']
}
build.dependsOn(npm_install)

您可以找到一个在Gradle构建这里中集成了一个角度应用程序的工作示例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46629655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档