복붙노트

[SPRING] 스프링 부트 + 스프링로드 (IntelliJ, Gradle)

SPRING

스프링 부트 + 스프링로드 (IntelliJ, Gradle)

스프링 부트 프로젝트에서 핫 스왑을 사용하고 싶습니다. 어쨌든이 주제가 문서화되어 있음에도 불구하고 내 IDE (IntelliJ)에서 실행하여 작동하게 만들 수 없습니다. VM 속성을 가진 내 main 메소드로 클래스를 실행하기 만하면된다.

-javaagent:/path/to/jar/springloaded.jar -noverify

제 질문은 어떻게 작동하게합니까? :-)

추가 질문은 Gradle과 IntelliJ로로드 된 스프링을 사용하는 방법입니다. 개발자가 수동으로 JAR을 다운로드하고 JAR 파일을 어딘가에 배치하고 JVM 매개 변수를 사용하여 JAR를 가리 키도록하는 것이 매우 불편하다는 것을 알고 있습니다. 더 나은 방법이 있습니까? (작업을 수행하고 IDE에서 Gradle 작업으로 실행하는 자체 작업을 구성해야합니까?)

해결법

  1. ==============================

    1.설명서에 설명 된대로 프로젝트를 구성해야합니다.

    설명서에 설명 된대로 프로젝트를 구성해야합니다.

    http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-reload-springloaded-gradle-and-intellij-idea

    그런 다음 컴파일 된 클래스를 build / classes / main에 출력하도록 IDE를 구성해야합니다 (Idea 플러그인을 사용하면 위 링크에 지정된대로 outputDir을 구성한 다음 gradle 아이디어를 호출하여 완료 할 수 있습니다).

    그런 다음 작업 (run / bootRun)을 시작하거나 IDE에서 디버그 모드를 사용하여 기본 클래스를 실행하면 클래스 컴파일시 핫 코드 재로드가 작동합니다.

    여기서 얻은 점은 이클립스와 달리 IntelliJ는 클래스가 저장 될 때 자동으로 클래스를 컴파일하지 않는다는 것입니다. 컴파일러를 "빌드 할 때 저장"으로 구성하더라도 실행 / 디버깅 중에는 수행하지 않습니다. IntelliJ IDEA Java 클래스는 저장시 자동 컴파일되지 않습니다 (CrazyCoder 응답).

    Spring 부트가 소스 코드 파일을 모니터링하고 변경 될 때 다시 컴파일하는 구성 옵션을 제공하는 것이 이상적입니다. 이것이 Grails의 기능입니다. 그러나 나는 그런 생각이 아직 존재하지 않는다고 생각합니다. 그리고 classpath와 그 종류의 것을 관리하는 책임이있는 gradle과 그것을 결합하는 것이 가능하지 않을 수도 있습니다.

    그래서 제가 말할 수있는 한 두 가지 옵션이 있습니다 :

    첫번째 지루한, 두 번째는 천천히 :)입니다. 실제로 IDE가 변경됩니다 : - D (또는 EclipseMode IntelliJ 플러그인을 설치하십시오).

  2. ==============================

    2.IntelliJ에서 애플리케이션을 실행할 수 있기를 원한다면 (메인 메쏘드에서 오른쪽 클릭 -> 디버그 사용), Spring Boot의 Gradle 작업을 전혀 필요로하지 않는다면 다음과 같이하면됩니다 :

    IntelliJ에서 애플리케이션을 실행할 수 있기를 원한다면 (메인 메쏘드에서 오른쪽 클릭 -> 디버그 사용), Spring Boot의 Gradle 작업을 전혀 필요로하지 않는다면 다음과 같이하면됩니다 :

    VM 옵션을 어떻게 추가했는지 확인하십시오. -javaagent : / path / to / springloaded - $ {version} .jar -noverify (여기서 다운로드 할 수 있음)

  3. ==============================

    3.Maven 프로젝트에서 IDEA를 사용하여이 작업을 수행 했으므로 Gradle 버전에서도 작동해야합니다. 내 절차는 다음과 같습니다.

    Maven 프로젝트에서 IDEA를 사용하여이 작업을 수행 했으므로 Gradle 버전에서도 작동해야합니다. 내 절차는 다음과 같습니다.

    Maven 플러그인 설정은 다음과 같습니다 :

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.0.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    

    이제 코드를 변경하고 페이지를 새로 고침하십시오.

  4. ==============================

    4.IntelliJ Idea에서 SpringBoot와 Gradle을 실행 중입니다. 자동 다시로드가 100 % 작동합니다.

    IntelliJ Idea에서 SpringBoot와 Gradle을 실행 중입니다. 자동 다시로드가 100 % 작동합니다.

    1 단계 : SpringLoaded 가져 오기

    buildscript {
        repositories {
            mavenCentral()
            jcenter()
        }
    
        dependencies {
            classpath "org.springframework.boot:spring-boot-gradle-plugin:1.2.1.RELEASE"
            classpath 'org.springframework:springloaded:1.2.1.RELEASE'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'application'
    apply plugin: 'idea'
    apply plugin: 'spring-boot'
    
    repositories {
        jcenter()
        mavenLocal()
        mavenCentral()
    }
    
    mainClassName = 'com.noxgroup.nitro.NitroApp'
    
    idea {
        module {
            inheritOutputDirs = false
            outputDir = file("$buildDir/classes/main/")
        }
    }
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web:1.2.1.RELEASE")
        compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    }
    
    jar {
        baseName = 'org.noxgroup-nitro'
        version =  '0.1.0'
    }
    
    task wrapper(type: Wrapper) {
        gradleVersion = '1.11'
    }
    

    2 단계 : Application.properties 만들기

    그리고 다음을 추가하십시오 :

    spring.thymeleaf.cache=false
    

    3 단계 : bootRun 태스크 실행

    (표준 실행 작업뿐만 아니라 SpringLoaded 기능을 추가합니다)

    4 단계 : Java 컴파일

    "Make Project"를 누르거나 "Ctrl / Command + F9"키를 눌러 Java 파일을 만드십시오.

  5. ==============================

    5.이후 버전의 gradle에서는 명령 창을 시작하고 실행할 수 있습니다

    이후 버전의 gradle에서는 명령 창을 시작하고 실행할 수 있습니다

    gradle -t classes
    

    이렇게하면 소스 코드의 변경 사항을 찾고 다시 컴파일하는 프로세스가 시작됩니다.

    다른 실행합니다.

    gradle bootRun
    

    java 또는 groovy src에 대한 모든 변경 사항이 자동으로 재 계산됩니다. intellij가 아니라면 intellij와 함께 가야합니다. 좋아하는 텍스트 편집기 (예 : 하위 클래스, 원자)를 만들 수도 있습니다.

    크레딧 / 링크

  6. from https://stackoverflow.com/questions/24371111/spring-boot-spring-loaded-intellij-gradle by cc-by-sa and MIT license