2017-04-04 39 views
0

我有2个Gradle项目,我想链接在一起。第一个项目有一个标准的Spring Boot应用程序,我想将它与我添加了“build.gradle”文件的ReactJS项目链接起来。包含来自复合gradle build生成的HTML/JS文件

我想将生成的文件包含到ReactJS项目的“build /”目录到Spring Boot项目的“META-INF/resources”目录中。

这些都是我gradle.build文件:

春季启动摇篮项目:

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摇篮项目:

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”任务时显示它们。

回答

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