programing

mvn spring-boot: run vs java - jar

codeshow 2023. 3. 8. 21:36
반응형

mvn spring-boot: run vs java - jar

바보 같은 질문으로 들릴지 모르지만, 나는 그 차이를 이해할 수 없다.mvn spring-boot:run그리고.java -jarmvn 설치 시 생성된 (.jar 파일)

jsp 페이지가 있는 스프링 부트 어플리케이션이 있습니다./src/main/resources/META-INF/resources/WEB-INF/를 사용하면mvn spring-boot:run이 페이지들은 제공되었습니다.하지만 내가 사용한다면java -jar이러한 페이지는 어플리케이션에서 찾을 수 없습니다.

현재 작업 중인 어플리케이션은 https://github.com/ArslanAnjum/angularSpringApi에 있습니다.

업데이트: 스프링 부트 1.4.2에서 작동합니다.최신 버전인 1.5.8을 사용하는 동안 릴리스합니다.풀어주다.

업데이트: src/main/webapp/WEB-INF/views/에 jsps를 넣고 패키징 유형을 war로 변경한 후 java -jar target/myapp을 사용하여 이 전쟁을 실행함으로써 문제를 해결했습니다.전쟁은 이제 잘 풀리고 있다.

간단한 답변:spring-boot:run는 입니다.java -jarMaven 빌드의 일부로 실행되는 stero"d 명령어를 사용하여 필요한 모든 파라미터(리소스 등)가 앱에 전달되도록 합니다. spring-boot:run또, 를 실행함으로써 프로젝트가 컴파일 할 수도 있습니다.test-compile어플리케이션 실행 전 라이프 사이클 목표

장황한 답변:

달릴 때java -jar이 JVM에 전달한 모든 파라미터를 사용하여 새 JVM 인스턴스를 시작합니다.예를 들어 Spring 문서 예제 사용

java -Xdebug -Xrunjdwp:server=y, \
    transport=dt_socket, address=8000, suspend=
    -jar target/myproject-0.0.1-SNAPSHOT.jar

지정된 파라미터를 사용하여 새로운 JVM을 기동합니다.명령줄에 클래스 경로 요소, 애플리케이션 매개 변수, JVM 옵션 등 필요한 모든 항목을 포함해야 합니다.

달릴 때mvn spring-boot:run다음과 같은 Maven 빌드를 시작합니다.

  • 를 실행합니다.test-compile라이프 사이클 목표, 디폴트로는resources:resources,compiler:compile,resources:testResources,compiler:testCompileMaven Resources and Compiler 플러그인의 목표.
  • 프로젝트에서 정의한 Spring Boot Maven 플러그인 구성(pom.xml, 부모 및 설정, 명령줄 등)에 따라 다양한 파라미터를 사용하여 응용 프로그램을 실행합니다.여기에는 다음이 포함됩니다.
    • 많은 클래스 패스 요소:target/classes응용 프로그램, Maven 종속성 등에 필요한 리소스 및 라이브러리를 포함하는 폴더입니다.
    • JVM을 분기할지 여부(앱을 실행하기 위해 완전히 새로운 JVM을 생성할지 또는 Maven 빌드의 JVM을 재사용할지 여부)는 다음을 참조하십시오.fork그리고.agent플러그인의 파라미터

이하에 따라:

/src/main/resources/META-INF/resources/WEB-INF/에 jsp 페이지가 있는 스프링 부트 애플리케이션이 있습니다.mvn spring-boot:run을 사용하면 다음 페이지가 제공됩니다.그러나 java -jar를 사용하면 이 페이지는 어플리케이션에서 찾을 수 없습니다.

그이 it mvn spring:boot를 실행하면 """가 됩니다.target/classes클래스 패스컴파일 후 이 폴더는 다음을 포함합니다.target/classes/META-INF/resources/WEB-INF른른른른에서 '찾아갈 수 있다'를 수 .META-INF/resources/WEB-INF로딩이 필요할 때 로딩합니다.★★★★★★★★★★★★★를 실행했을 때java -jar명령, 이 폴더가 클래스 경로에 없을 수 있습니다. 는 (에서 입니다)src/main/resources는 ""」중)resources:resources목표) )

같은 결과를 얻으려면java -jar에 리소스를 . 예를 , 클래스 경로에 리소스를 포함해야 합니다.javar -jar myapp.jar -cp $CLASSPATH;/path/to/my/project/target/classes/

, 여러분, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자, 자.mvn packagemvn install 파일을 때 jar 파일을 합니다.java -jar무슨 일입니까?package는 POM POM은 jar/war를 작성합니다.install는 생성된 jar 파일을 로컬저장소에 설치합니다(존재하는 경우).

언급URL : https://stackoverflow.com/questions/47258695/mvn-spring-bootrun-vs-java-jar

반응형