Как автоматизировать задачи grad для nmp_run_build или npm_test, запускаемые перед задачей bootRun? - PullRequest
0 голосов
/ 30 июня 2019

У меня есть проект, который содержит как загрузочный код 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 не была запущена Как я могу полностью заполнить мою спецификацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...