【问题标题】:Spring Boot, Gradle, and Visual Studio Code - Gradle bootRun Task Not Working CorrectlySpring Boot、Gradle 和 Visual Studio Code - Gradle bootRun 任务无法正常工作
【发布时间】:2019-01-17 03:21:14
【问题描述】:

我正在尝试将 VS Code 用于我的 Spring Boot MVC Java 应用程序。我正在使用 Gradle 构建工具。我已经从 RedHat 安装了Java Language Support extension。每当我尝试使用“gradle bootRun”运行我的应用程序时,它似乎永远不会停止执行,但会在 75% 处停止。

此外,每当我停止任务(Ctrl+C)时,我都会收到一条消息

终端进程以退出代码终止:2。

我已将 Spring Boot 的开发工具作为依赖项包含在内,但应用程序似乎没有重新启动或重新加载。我曾尝试使用 Java 扩展提供的Force Java Recompilation 命令,但没有成功。

有没有人能够让 Spring Boot、Gradle 和 VS 代码很好地协同工作?

谢谢。

编辑:

抱歉,我应该包含我的 build.gradle 文件。

buildscript {
    ext {
        springBootVersion = '2.1.0.BUILD-SNAPSHOT'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}


plugins {
  id "org.kravemir.gradle.sass" version "1.2.2"
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.midamcorp'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 10

task ts(type:Exec) {
workingDir "./"
  commandLine  'cmd', '/c', 'tscCompile.bat'    
}

bootRun {
  args = ["--spring.profiles.active=dev" ]
}
sass {
    main {
        srcDir = file("$projectDir/src/main/sass")
        outDir = file("$projectDir/src/main/resources/static/css")
        exclude = "**/_*.scss"
        minify = true

    }
}

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-mail')
    compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    compile('org.postgresql:postgresql:42.2.4')
    compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.4.0-b180725.0427'

    compile('com.github.mkopylec:recaptcha-spring-boot-starter:2.2.0')
    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('org.springframework.boot:spring-boot-devtools')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

【问题讨论】:

    标签: java spring-boot visual-studio-code


    【解决方案1】:

    这种行为是预期的,我认为bootRun 工作正常。查看屏幕截图,您的 Web 应用程序似乎已成功启动。

    Gradle 显示的百分比(在本例中为 75%)是整个构建的进度。例如,如果构建将运行 4 个任务,而 bootRun 是第 4 个任务,则在调用 bootRun 任务时构建将完成 75%,因为 4 个任务中有 3 个已完成。 bootRun 任务不会结束,因为它托管了一个 Web 应用程序,因此将无限期地运行。这意味着 Gradle 继续显示构建已完成 75%,因为从 Gradle 的角度来看,最终任务尚未完成。

    您可以使用ignoreExitValue = true 配置您的bootRun 任务,这样当您使用CTRL+C 停止您的Web 应用程序时Gradle 不会抱怨

    【讨论】:

    • 谢谢。我似乎永远无法使用 Gradle 命令重新启动或实时重新加载(也许这是预期的)?如果它对其他人有帮助,Spring Boot 的重启和实时重新加载功能实际上可以很好地与 Java 扩展包 (marketplace.visualstudio.com/…) 中包含的调试器配合使用。来自 Eclipse,我怀疑 Boot 的开发工具能否在 VS 代码中如此顺利地工作(这就是我尝试使用 Gradle 的原因),但他们确实做到了。可能不如他们在 Eclipse 上做的那么好,但比预期的要好。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 2014-06-30
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2017-07-29
    • 2014-11-20
    相关资源
    最近更新 更多