[SPRING] mvn spring-boot : vs java -jar 실행
SPRINGmvn spring-boot : vs java -jar 실행
나는 어리석은 질문이 들리 겠지만 mvn spring-boot와 java -jar (mvn install로 생성 된 .jar 파일)의 차이점을 이해할 수 없다.
/ src / main / resources / META-INF / resources / WEB-INF /에 jsp 페이지가있는 스프링 부팅 응용 프로그램이 있습니다. mvn spring-boot :를 사용하면이 페이지들이 실행됩니다. 하지만 java -jar를 사용하면 이러한 페이지는 응용 프로그램에서 찾을 수 없습니다.
현재 작업중인 애플리케이션은 https://github.com/ArslanAnjum/angularSpringApi입니다.
최신 정보: 최신 버전 인 1.5.8.RELEASE를 사용하는 동안 스프링 부트 1.4.2.RELEASE와 함께 작동합니다.
최신 정보: 그럼 내가 src / main / webapp / WEB-INF / views /에 jsps를 두어 패키징 유형을 war로 변경 한 다음 java -jar target / myapp.war와이 작업을 지금 사용하여이 문제를 해결함으로써이 문제를 해결했습니다.
해결법
-
==============================
1.짧은 답변 : spring-boot : run은 Maven 빌드의 일부로 실행되는 steroïd에 대한 java -jar 명령입니다. 필요한 모든 매개 변수가 리소스와 같이 앱에 전달되도록합니다. spring-boot : run은 앱을 실행하기 전에 테스트 컴파일 라이프 사이클 목표를 실행하여 프로젝트가 컴파일되도록합니다.
짧은 답변 : spring-boot : run은 Maven 빌드의 일부로 실행되는 steroïd에 대한 java -jar 명령입니다. 필요한 모든 매개 변수가 리소스와 같이 앱에 전달되도록합니다. spring-boot : run은 앱을 실행하기 전에 테스트 컴파일 라이프 사이클 목표를 실행하여 프로젝트가 컴파일되도록합니다.
긴 대답 :
java -jar를 실행하면이 JVM에 전달한 모든 매개 변수를 사용하여 새 JVM 인스턴스를 시작합니다. 예를 들어, Spring doc 예제 사용하기
java -Xdebug -Xrunjdwp:server=y, \ transport=dt_socket, address=8000, suspend= -jar target/myproject-0.0.1-SNAPSHOT.jar
주어진 매개 변수로 새로운 JVM을 시작할 것입니다. classpath 요소, 응용 프로그램 매개 변수, JVM 옵션 등과 같이 필요한 모든 것을 명령 줄에 포함시켜야합니다.
mvn spring-boot :를 실행하면 다음과 같은 Maven 빌드가 시작됩니다.
에 따라 :
왜냐하면 mvn spring : boot 명령은 앱이 실행 중일 때 Classpath에 target / classes 폴더가 있는지 확인하기 때문입니다. 컴파일이 끝나면이 폴더에는 target / classes / META-INF / resources / WEB-INF가 포함됩니다. 그러면 앱에서 META-INF / resources / WEB-INF를 찾아 질문 할 때로드 할 수 있습니다. java -jar 명령을 실행하면이 폴더는 클래스 경로에없는 것일 수 있습니다. 그러면 응용 프로그램에서 자원을 찾을 수 없습니다. (이 자원들은 resources : resources 목표 동안 src / main / resources 폴더에서 복사되었습니다)
java -jar 명령으로 비슷한 결과를 얻으려면 javar -jar myapp.jar -cp $ CLASSPATH; / path / to / my / project / target / classes /와 같은 클래스 경로에 자원을 포함시켜야합니다.
-
==============================
2.java -jar를 사용하여 jar 파일을 실행할 때 mvn 대신 mvn 패키지를 사용하여 jar 파일을 만들려고 했습니까? 패키지는 POM 파일에 따라 jar / war를 만들지 만 install은 생성 된 jar 파일을 다른 저장소가있는 경우 로컬 저장소에 설치합니다.
java -jar를 사용하여 jar 파일을 실행할 때 mvn 대신 mvn 패키지를 사용하여 jar 파일을 만들려고 했습니까? 패키지는 POM 파일에 따라 jar / war를 만들지 만 install은 생성 된 jar 파일을 다른 저장소가있는 경우 로컬 저장소에 설치합니다.
from https://stackoverflow.com/questions/47258695/mvn-spring-bootrun-vs-java-jar by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java 9 용 Spring 5가 필요합니까? (0) | 2019.04.04 |
---|---|
[SPRING] tomcat7 : JDBC 드라이버 클래스를로드 할 수 없습니다 [com.mysql.jdbc.Driver] (0) | 2019.04.04 |
[SPRING] 스프링 부트 잭슨에서 기본 표준 시간대를 적용하는 방법 날짜 직렬화 (0) | 2019.04.04 |
[SPRING] 메이븐 봄 - 요소 '콩'의 선언을 찾을 수 없습니다 (0) | 2019.04.04 |
[SPRING] 여러 위치에있는 Spring 속성 자리 표시 자 구성 자의 속성 확인 순서는 무엇입니까? (0) | 2019.04.04 |