我想要链接在一起的2个Gradle项目。第一个项目有一个标准的Spring Boot应用程序,我想将它与我已经添加了“build.gradle”文件的ReactJS项目链接起来。
我想将生成的文件包含在ReactJS项目的“build /”目录中,并将其包含在Spring Boot项目的“META-INF / resources”目录中。
这些是我的gradle.build文件:
Spring Boot Gradle项目:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE'
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
group = "com.myproject"
version = "1.0"
bootRun {
systemProperties = System.properties
}
repositories {
jcenter()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("com.myproject:myproject-ui:1.0")
}
ReactJS Gradle项目:
plugins {
id "com.moowork.node" version "1.1.1"
}
node {
download = true
}
apply plugin: 'java'
group = "com.myproject"
version = "1.0"
buildDir = 'dist'
task webjar(type: Jar, dependsOn: 'jar') {
from(fileTree('build')) {
into 'META-INF/resources'
}
}
build.dependsOn(webjar)
build.dependsOn(npm_run_build)
clean {
delete 'dist'
delete 'build'
}
假设我已正确设置“settings.gradle”文件,使其成为复合构建,因为这似乎不会导致问题。
当我为ReactJS项目运行“build”任务时,“build /”目录已成功生成,但我似乎没有被Spring Boot项目包含在任何地方。如何在运行Spring Boot项目的“bootRun”任务时包含生成的HTML / JS文件。
答案 0 :(得分:0)
通常情况下,您使用Configuration作为此
reactjs/build.gradle
configurations {
wj
}
task webjar(type: Jar) { ... }
dependencies {
wj files(webjar)
}
springboot/build.gradle
configurations {
wj
}
dependencies {
wj project(path: ':reactjs', configuration: 'wj')
}
war {
with copySpec {
from zipTree(configurations.wj.singleFile)
into 'META-INF/resources'
}
}