2009-04-18 2 views
5

의 내가 다음이 포함 된 ivy.xml 있다고 가정 해 봅시다 :귀찮은 아티팩트를 제거하도록 Apache Ivy를 구성하는 방법은 무엇입니까?

<dependency org="checkstyle" name="checkstyle" rev="4.3" /> 

을 그리고 내가 Checkstyle 4.4로 업그레이드 할를, 그래서 포함 내 ivy.xml을 변경

<dependency org="checkstyle" name="checkstyle" rev="4.4" /> 

을 가진 retrieve 후 첫 번째 구성에서는 파일이 checkstyle-4.3.jar입니다. 두 번째 구성 후에도 파일이 checkstyle-4.4.jar이고 checkstyle-4.3.jar 파일이 계속 존재합니다.

아이비가 이전 파일이 고아임을 인식하고이를 lib 디렉토리에서 제거 할 수있는 방법이 있습니까? 아이디어는 도구를 업그레이드 할 때마다 개발자의 디스크 공간 사용량이 급격하게 증가하는 것을 원하지 않는다는 것입니다.

이상적으로는 로컬 저장소에서도 제거하는 것이 좋습니다. 로컬 저장소의 의도는 프로젝트간에 공유된다는 것이고, 따라서 다른 프로젝트에서이 이슈가 아직 사용 중인지 여부를 알 수 없으므로 아무 것도 제거하지 않는 것입니다. 하지만 어떤 가지 치기 과정이 있어야합니다 ...

답변

9

나는 아이비 2.0.0을 사용 해왔다. 그래서 나는 당신이 사용하고있는 버전에 적용되는지 모르겠다.

Ivy retrieve 작업에는 sync 특성이 있습니다. 이것을 true으로 설정하면 검색된 디렉토리 (귀하의 경우 lib)에 사용되지 않은/알 수없는 파일이 삭제됩니다. 즉, 수동으로 복사 한이 디렉토리의 Ivy가 해결하지 못하는 이슈가 제거된다는 의미입니다.

또한 sync 옵션을 사용하지만 Ivy가 종속성을 확인하지 않으면 (예 : ivy.xml이 비어 있거나 없으면) 검색 디렉토리가 삭제됩니다.

+0

그게 바로 내가 뭘 찾고 있었는지 고마워! 그건 그렇고, 2.1.0-RC1을 사용하고 있습니다. –

+0

그건 그렇고, 내가 캐시에서 항목을 제거하지 않는 것으로 결정했습니다. 따라서 lib 디렉토리에 동일한 jar 파일을 여러 버전으로 설치하지 않아도되므로 많은 디스크 공간을 절약 할 수 있습니다. 때때로 아이비 : 클린 캐쉬가 그 일을 할 것입니다. –

관련 문제