【问题标题】:Spring Boot work with Spring Loaded and GradleSpring Boot 与 Spring Loaded 和 Gradle 一起使用
【发布时间】:2015-05-15 17:45:41
【问题描述】:

我试图让一个简单的 Spring-Boot 应用程序与 Spring Loaded 和 Gradle 一起工作,但没有任何成功。我尝试了以下方法:

  1. 将 Spring-Boot 与 bootRun 任务一起使用,只需在浏览器中按 F5 即可轻松重新加载静态资源

  2. 如果我再次使用bootRun 并通过文本编辑器更改一个类并且使用compileJava 它不起作用。

  3. 如果我使用 IntelliJ Application 运行它,则在现有控制器中进行更改并使用 IntelliJ make 它仅适用于现有方法。不更新新方法、更改签名等。

  4. 使用带有 VM 参数的 IntelliJ:

    -javaagent:C:\Users\myuser\.m2\repository\org\springframework\springloaded\1.2.1.RELEASE\springloaded-1.2.1.RELEASE.jar -noverify

还是什么都不做。

理想情况下,我想只使用 Gradle 来执行该过程 - 所以我独立于 IDE

请查看 Github 项目,以便查看我的示例代码: Sample Project

只需在DemoController 中执行任何更改

【问题讨论】:

    标签: java spring intellij-idea spring-boot spring-loaded


    【解决方案1】:

    似乎诀窍是使用任务build bootRun 而不是简单的“bootRun”。

    这是一个 Gradle 构建文件,当 Java 类更改时,它还使用带有增量编译的 watch 插件:

    buildscript {
        ext {
            springBootVersion = '1.2.2.RELEASE'
            springLoadedVersion = "1.2.1.RELEASE"
        }
        repositories {
            mavenCentral()
            mavenLocal()
            jcenter()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
            classpath("org.springframework:springloaded:${springLoadedVersion}")
            classpath 'com.bluepapa32:gradle-watch-plugin:0.1.5'
        }
    }
    
    repositories {
        mavenCentral()
        mavenLocal()
        jcenter()
    }
    
    apply plugin: "java"
    apply plugin: "spring-boot"
    apply plugin: 'idea'
    apply plugin: 'application'
    apply plugin: 'com.bluepapa32.watch'
    
    
    mainClassName = "com.example.my.Application"
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web")
        runtime("org.hsqldb:hsqldb")
    }
    
    task wrapper(type: Wrapper) { gradleVersion = '2.3' }
    
    idea {
        module {
            inheritOutputDirs = false
            outputDir = new File("$buildDir/classes/main/")
        }
    }
    
    compileJava {
        //enable compilation in a separate daemon process
        options.fork = true
        //enable incremental compilation
        options.incremental = true
    }
    
    watch {
        java {
            files files('src/main/java')
            tasks 'compileJava'
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-13
      • 2017-03-21
      • 2015-12-20
      • 2018-05-14
      • 1970-01-01
      • 2015-11-03
      • 2019-10-28
      • 2015-02-27
      • 2021-01-02
      相关资源
      最近更新 更多