У меня есть проект, который содержит как загрузочный код java, так и javascript-код
Весенний загрузочный код может быть собран и запущен с помощью bootRun
Код React можно протестировать с помощью команды gradle npm_test
Код React может быть собран командой gradle npm__run_build
Я хочу определить задачу, которая:
1) тестовый код реакции
2) построить код реакции
3) скопируйте сборку в ресурс / srs / main /
4) запустить команду gradle bootRun
Один из моих экспериментов с использованием taks, который был неудачным, показан в
gradle.buld
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.4.RELEASE")
}
}
plugins {
id 'java'
id 'org.springframework.boot' version '2.1.5.RELEASE'
id "com.moowork.node" version "1.3.1"
id 'jacoco'
}
apply plugin: 'io.spring.dependency-management'
jacoco {
toolVersion = "0.8.3"
reportsDir = file("$buildDir/customJacocoReportDir")
}
jacocoTestReport {
reports {
xml.enabled = true
}
}
group = 'com.steinko.reactspringboottutorial.webserver'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
repositories {
mavenCentral()
}
test {
useJUnitPlatform()
}
sourceSets {
main {
resources {
srcDirs = [
'src/main/resources'
]
}
}
}
ext {
set('springCloudVersion', "Greenwich.SR1")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-gcp-starter'
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.2.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
node {
/* gradle-node-plugin configuration
https://github.com/srs/gradle-node-plugin/blob/master/docs/node.md
Task name pattern:
./gradlew npm_<command> Executes an NPM command.
*/
// Version of node to use.
version = '10.16.0'
// Version of npm to use.
npmVersion = '6.9.0'
// If true, it will download node using above parameters.
// If false, it will try to use globally installed node.
download = false
}
task copyBuild(type: Copy) {
dependsOn 'runBuild'
println 'copy build files'
from "$buildDir/build/static"
into "$buildDir/src/main/resources/static/build/static"
}
task runTest {
doLast {
tasks.npm_test
println 'test react'
}
}
task runBuild {
dependsOn 'runTest'
doLast {
tasks.npm_run_build
println 'build react'
}
}
task runBootRun {
dependsOn 'copyBuild'
doLast {
tasks.bootRun
println 'boot run'
}
}
Когда я запускаю этот скрипт, я получаю следующий результат
gradle runBootRun
Настройка проекта:
копировать файлы сборки
Задача: runTest
тест реагирует
Задача: runBuild
Построить реакцию
Задача: runBootRun
загрузочный прогон
Но ни одна из загрузочных копий run_build run_test не была запущена
Как я могу полностью заполнить мою спецификацию?