programing

"mvn clean package"와 "mvn clean install"은 어떻게 다릅니까?

projobs 2022. 8. 13. 11:35
반응형

"mvn clean package"와 "mvn clean install"은 어떻게 다릅니까?

와의 차이는 정확히 무엇입니까?mvn clean package그리고.mvn clean install? 이 두 명령어를 실행하면 두 명령어 모두 같은 동작을 하는 것 같습니다.

둘 다 청소할 거야즉, 대상 폴더를 제거할 수 있습니다.문제는 패키지와 설치의 차이입니다.

package코드를 컴파일하여 패키징합니다.예를 들어, pom에 프로젝트가 jar라고 표시되어 있는 경우, pom을 패키징하여 타겟디렉토리에 배치하면(디폴트로) jar가 생성됩니다.

install는 컴파일 및 패키징되지만 패키지는 로컬저장소에도 저장됩니다.그러면 다른 프로젝트에서 참조할 수 있고 로컬 저장소에서 가져올 수 있습니다.

문서

What clean does (두 명령어 공통) - 이전 빌드에 의해 생성된 모든 파일 삭제


명령어 패키지와 설치의 차이점에 대해서는 먼저 메이븐 프로젝트라이프 사이클을 이해할 필요가 있습니다.


이것들은 메이븐의 디폴트 라이프 사이클 단계입니다.

  • validate - 프로젝트가 올바르고 필요한 모든 정보를 사용할 수 있는지 확인합니다.
  • 컴파일 - 프로젝트의 소스 코드를 컴파일합니다.
  • 테스트 - 컴파일된 소스 코드를 적절한 유닛 테스트 프레임워크를 사용하여 테스트합니다.이러한 테스트에서는, 코드를 패키지화 또는 전개할 필요는 없습니다.
  • package - 컴파일된 코드를 JAR 등의 배포 가능한 형식으로 패키지합니다.
  • verify - 통합 테스트 결과에 대한 모든 검사를 실행하여 품질 기준을 충족하는지 확인합니다.
  • install - 로컬저장소에 패키지를 설치하여 다른 프로젝트에서 로컬로 의존관계로 사용합니다.
  • 배포 - 빌드 환경에서 수행되며 최종 패키지를 원격 저장소에 복사하여 다른 개발자 및 프로젝트와 공유합니다.

Maven은 라이프 사이클 단계 중 하나에 대해 명령을 실행하면 명령어 자체를 실행하기 전에 각 기본 라이프 사이클 단계를 순서대로 실행합니다.

집행 순서

validate >> 컴파일 >> 테스트 (옵션)>> 패키지 >> 확인 > 설치 >> 전개

따라서 명령어 mvn package를 실행하면 패키지까지의 모든 라이프 사이클 단계에 대한 명령어가 실행됩니다.

validate >> 컴파일 >> 테스트 (옵션)>> 패키지

또한 mvn 설치의 경우 설치까지의 모든 라이프 사이클 단계에 대해 명령을 실행합니다(패키지 포함).

validate >> 컴파일 >> 테스트 (옵션)>> 패키지 >> 확인 >> 설치


, 사실상 install 명령어는 package 명령어가 수행하는 모든 작업 및 기타 작업을 수행합니다(패키지를 로컬저장소에 설치하여 다른 프로젝트의 의존관계로 사용).

출처: 메이븐 라이프 사이클 레퍼런스

패키지는 POM 파일에 따라 Jar/war를 생성합니다.install을 실행하면 생성된 jar 파일이 로컬저장소에 설치되어 다른 의존관계가 있는 경우 해당 jar 파일이 설치됩니다.

설치 단계는 패키지 단계 이후에 진행됩니다.

package 「」를 합니다.jar ★★★★★★★★★★★★★★★★★」waryour targetfolder,때 확인할 수( 「 」 「 」 「 」 「 」 「 」 「 」 ) 。mvn clean를 실행하고 나서, 「」를 실행합니다.mvn package
install 수 있는 을 할 package패키징된 '패키지'가 됩니다.jar ★★★★★★★★★★★★★★★★★」war로컬 저장소에서도 사용할 수 있습니다.하실 수 있는 건 객객 your we we we we we we we we we we we we we we we we we we we 。.m2더입니니다다

패키지 및 설치는 제조 라이프 사이클의 다양한 단계입니다.패키지 단계는 그 전의 모든 단계를 실행하고 프로젝트를 병으로 패키징하는 것으로 정지합니다.마찬가지로 설치 단계에서는 모든 이전 단계를 실행하고 최종적으로 다른 종속 프로젝트에 대해 프로젝트를 로컬로 설치합니다.

메이븐의 빌드 라이프 사이클에 대해서는, 다음의 링크를 참조해 주세요.https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

mvn package 명령어는 소스 코드를 컴파일하고 pom 파일에 따라 jar 또는 war로 패키징하여 타깃 폴더에 넣습니다(기본값).

mvn install 명령어는 컴파일 및 패키징되지만 패키지는 로컬저장소에도 저장됩니다.다른 프로젝트에서 참조하고 로컬 저장소에서 가져올 수 있습니다.

mvn install 명령어는 저장소 내의 다른 프로젝트가 의존하는 프로젝트(프로젝트)를 컴파일할 때 주로 사용됩니다.

언급URL : https://stackoverflow.com/questions/16602017/how-are-mvn-clean-package-and-mvn-clean-install-different

반응형