[英]how to integrate with npm web app and spring boot with gradle?
請幫助我使用gradle與節點ui模塊和Spring Boot集成。
我只想使用Web jar文件部署war
文件。
我的項目結構就像
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-api java應用程序。
web
模塊是npm節點應用程序。
我想做這個senario。
如果我輸入./gradlew clean build
然后:web
項目首先編譯並創建dist
目錄,然后創建jar
文件。
然后:api
項目使這個jar文件發動戰爭。 我將api war
部署到服務器。
也許上述步驟不正確,因為我不擅長。
我應該如何編寫代碼來做到這一點? 我必須在一個build.gradle文件中編寫腳本。 只有一個build.gradle文件。 我只需要使用這個文件。
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)
}
看一下Gradle Node插件 。
將其包括在您的構建依賴項中:
buildscript {
...
dependencies {
classpath "com.moowork.gradle:gradle-node-plugin:1.1.1"
}
}
應用插件:
apply plugin: 'com.moowork.node'
配置它以適合您的項目結構:
node {
version = '6.10.2'
npmVersion = '3.10.6'
download = true
workDir = file("${project.buildDir}/node")
nodeModulesDir = file("${project.projectDir}")
}
提供Gradle任務以運行NPM:
task build(type: NpmTask) {
args = ['run', 'build']
}
build.dependsOn(npm_install)
您可以在此處找到將Angular應用程序集成到Gradle構建中的工作示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.