“mvn clean install”과“mvn install”의 차이점은 무엇입니까?


답변:


214

cleanMaven에서 자체 빌드 수명주기 단계 (작업 또는 작업으로 생각할 수 있음)입니다. mvn clean installMaven에게 clean각 모듈에 대한 install단계를 실행하기 전에 각 모듈 에서 단계 를 수행하도록 지시 합니다.

이것이하는 일은 컴파일 된 파일을 지우는 것이므로 실제로 각 모듈을 처음부터 컴파일해야합니다.


13
나는 항상 그 단계 중 하나로 깨끗한 설치를 포함한다고 생각했습니다 ... 이것을 볼 때까지
Junchen Liu

14
@shanyangqu 슬프게도, 아닙니다. clean별도의 라이프 사이클 , 그래서 기본적으로 불리는 아닙니다.
Powerlord

47

Maven을 사용하면 명령 줄에서 목표 또는 수명주기 단계 (또는 둘 다)를 지정할 수 있습니다.

clean하고 install있는 두 개의 서로 다른 라이프 사이클 단계에 있는에, 다른 플러그인 실행이 바인딩은 (기본값 당 또는 중 당신의 pom.xml에 명시 )

그만큼 clean단계는, 대회 당, 빌드 재현을하기위한 것입니다, 그것은 이전 빌드에 의해 생성 된 것을 정리 즉. 대부분의 경우을 호출 clean:clean하여 바인딩 된 디렉토리를 삭제합니다 ${project.build.directory}(일반적으로 "target"이라고 함).


6
"install"은 수명주기가 아닙니다. 기본 수명주기의 단계입니다. "깨끗한"수명주기가 있지만 AFAIK이 매개 변수는 "깨끗한"수명주기 자체가 아니라 "깨끗한"수명주기의 "깨끗한"단계를 지정합니다.
Puce

1
@Puce 사실, 나는 생명주기가 아니라 "위상"을 의미했다
Sean Patrick Floyd

38

maven을 사용하여 둘 이상의 대상 목표를 호출 할 수 있습니다 . mvn clean install호출 clean한 후, 첫번째 install. clean은 표준 대상 이 아니며 모든 설치에서 자동으로 실행 되지 않기 때문에 수동으로 청소 해야합니다.

clean대상 폴더를 제거합니다-모든 클래스 파일, Java 문서, jar, 보고서 등을 삭제합니다. 당신이하지 않으면clean maven은 해당 소스 파일이 변경되지 않았을 때 클래스를 컴파일하지 않는 것처럼 "해야 할 일만"수행합니다.

우리는 전화를 대상으로 개미의 목표 받는다는에서


1
이 맥락에서 깨끗하고 설치는 목표가 아니라 수명주기 단계라고 생각합니다.
JL_SO 19


4

@Andreas_D에 대한 Ditto, 또한 깨끗하지 않고 프로젝트에서 Spring을 1 버전에서 다른 버전으로 업데이트한다고 말하면 아티팩트에 모두 영향을 미칩니다. Maven으로 Flex 개발을 수행 할 때이 문제를 많이 해결하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.