[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.설명서에 설명 된대로 프로젝트를 구성해야합니다.
설명서에 설명 된대로 프로젝트를 구성해야합니다.
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.IntelliJ에서 애플리케이션을 실행할 수 있기를 원한다면 (메인 메쏘드에서 오른쪽 클릭 -> 디버그 사용), Spring Boot의 Gradle 작업을 전혀 필요로하지 않는다면 다음과 같이하면됩니다 :
IntelliJ에서 애플리케이션을 실행할 수 있기를 원한다면 (메인 메쏘드에서 오른쪽 클릭 -> 디버그 사용), Spring Boot의 Gradle 작업을 전혀 필요로하지 않는다면 다음과 같이하면됩니다 :
VM 옵션을 어떻게 추가했는지 확인하십시오. -javaagent : / path / to / springloaded - $ {version} .jar -noverify (여기서 다운로드 할 수 있음)
-
==============================
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.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.이후 버전의 gradle에서는 명령 창을 시작하고 실행할 수 있습니다
이후 버전의 gradle에서는 명령 창을 시작하고 실행할 수 있습니다
gradle -t classes
이렇게하면 소스 코드의 변경 사항을 찾고 다시 컴파일하는 프로세스가 시작됩니다.
다른 실행합니다.
gradle bootRun
java 또는 groovy src에 대한 모든 변경 사항이 자동으로 재 계산됩니다. intellij가 아니라면 intellij와 함께 가야합니다. 좋아하는 텍스트 편집기 (예 : 하위 클래스, 원자)를 만들 수도 있습니다.
크레딧 / 링크
from https://stackoverflow.com/questions/24371111/spring-boot-spring-loaded-intellij-gradle by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 보안 컨텍스트에 저장된 주 객체에 추가 세부 사항 추가하기 (0) | 2019.01.08 |
---|---|
[SPRING] 순수 자바 기반 설정으로 Spring MVC를 설정하는 방법은? (0) | 2019.01.08 |
[SPRING] Spring ApplicationContext 계층 구조를 사용해야하는 이유는 무엇입니까? (0) | 2019.01.08 |
[SPRING] Spring CrudRepository findByInventoryIds (List <Long> inventoryIdList) - IN 절과 동일합니다. (0) | 2019.01.08 |
[SPRING] mvn spring-boot를 종료하는 중 : run이 바람둥이를 멈추지 않습니다. (0) | 2019.01.08 |