包括来自复合gradle构建的反应生成的HTML / JS文件

时间:2017-04-04 12:19:28

标签: java reactjs gradle

我想要链接在一起的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文件。

1 个答案:

答案 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'
    }
}