Spring/기타

[Maven] 메이븐이란, mvn clean install vs clean package

민돌v 2022. 7. 30. 01:29

 

 

Maven 이란, xml 형식으로 이루어진 빌드 도구 입니다.


maven clean, install, package

📌 clean 은 컴파일 된 결과물인 .target 폴더를 지워주는 메이븐 명령어이고

📌 install 과 package 는 프로젝트를 빌드하여 jar 실행 파일을 만들어주는 명령어입니다.


 

Mvn install vs package

mvn install 과 mvn package 의 차이점은 로컬 maven 폴더에 jar 파일을 저장해주냐 안해주냐의 차이입니다.

package 는 생성된 jar파일이 .target 폴더에 위치하고

install 은 생성된 jar 파일이 .target 하위 와, 로컬 mvn 폴더 내의 repoisoty 폴더 생성됩니다.

 


메이븐 생명주기 (maven lifecycle)

1. process-resources

  •  /src/main/resources 디텍토리를 <outputDirectory>에 생성

2. compile

  •  소스코드를 컴파일해서 클래스를 <outputDirectory>에 생성

3. test-compile

  •  테스트 소스 코드를 컴파일

4. test

  •  테스트가 실패하면 빌드를 멈춘다. 테스트 코드가 깨져도 빌드를 성공시키려면 maven.test.skip속성을 true로 설정

 

➡️ 여기부터는 명령어 따라서,

package

  •  compile, test-compile, test순으로 실행 후 jar, war파일이 target디렉토리 아래에 생성

 

install

  •  로컬 리파지토리에 패키지를 배포
  •  의존성 있는 다른 프로젝트에서 local repository에 존재하는 패키지 참조할수 있게 됨

 

deploy

  •  원격리파지토리에 등록하며 다른 프로젝트에서 사용할수 있도록 한다.

 

clean

  •  target 디렉토리의 결과물을 모두 제거

 

maven Clean install  의 결과물 

  1. jar 파일을 빌딩하고
  2. 로컬 레포에 인스톨한다.
  •  Installing /Users/hmin/Desktop/onbording/spring-example/springPractice/target/springPractice-0.0.1-SNAPSHOT.jar to /Users/hmin/.m2/repository/com/example/springPractice/0.0.1-SNAPSHOT/springPractice-0.0.1-SNAPSHOT.jar

c=

 

 

 

 

 

참고

https://jinsiri.tistory.com/588?category=792858