我有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 /”目录,但是Spring Boot项目似乎没有将我包含在其中。如何包含生成的HTML / JS文件,以便在运行Spring Boot项目的“bootRun”任务时显示它们。
最佳答案
通常,您为此使用Configurationreactjs/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'
}
}
关于java - 包括React从复合gradle构建生成的HTML/JS文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43207072/