2013-06-25 1 views
0

우리는 원격 저장소에 몇 개의 내부 jar를 가지고 있으며 매우 자주 빌드하지 않습니다. resolver는 다음과 같습니다 : view-snapshots는 로컬 repo이고 hub-releases는 공유 repo입니다. 개발자가 아무것도를 게시하는 경우 기본적으로ivy cleancache하지만 특정 폴더

<chain name="hub-internal-library-chain" returnFirst="true"> 
     <resolver ref="view-snapshots"/> 
     <resolver ref="hub-releases"/> 

    </chain> 

, 그것은보기 - 스냅 샷하는 성능 문제에 대한 플래그를

수익 1 세대를 "true"로 유지할 필요가 cache.We 간다 . 그래서 내가 캐시 (로컬) 및 저장소 (로컬)에서 일부 특정 파일을 삭제하려는 문제. 담쟁이 초보자 오전, 어떤 도움을 주시면 감사하겠습니다.

감사

PS : 나는 이미이 아직 해결되지 나와 완전히 유사하다이 질문에 대해 살펴 있었다. http://grokbase.com/t/ant/ivy-user/105d2bxpyy/refreshing-ivy-cache-after-changing-a-published-version

+0

캐시에서 파일을 삭제하려는 이유가 명확하지 않습니다. 왜 그냥 지우지 그래? 아마도 당신은 결재 자의 "changingPattern"속성을 계산할 필요가있을 것입니다. 이 공간에 대한 자세한 내용은 다음을 읽어 보시기 바랍니다. http://ant.apache.org/ivy/history/latest-milestone/concept.html#cache –

답변

2

캐시의 한 모듈 만 삭제하는 전용 코드가 Ivy에 없습니다.

그러나 정규 Ant 태스크를 사용하면 매우 쉽습니다.

<delete dir="${user.home}/.ivy2/cache/com.acme/foo" /> 
+1

내 요구 사항에 맞게 솔루션을 수정했습니다. 알고 싶었습니다. 아이비에 자동으로 할 수있는 것이 있다면 – stillLearning

0

나를 위해 작동이 솔루션 :

을 여기에 기본 패턴, 회사 com.acme의 모듈 foo의 캐시를 삭제합니다 build.xml 파일의 조각 기본 캐시를 가지고 가정
<target name="clear-entries" if="clean-selected-cache" depends="clear-cache,clear- repository"> 
    <echo>Clearing cache and repository entries for internal libraries</echo> 
    </target> 

<target name="clear-cache"> 
    <delete verbose="true"> 
    <fileset dir="${ivy.view-local.cache.root}"> 
     <includesfile name="path.to.file/clear-cache.includes.txt"/> 
    </fileset> 
    </delete> 
</target> 

<target name="clear-repository"> 
    <delete verbose="true"> 
    <fileset dir="${ivy.view-local.repository.root}"> 
     <includesfile name="path.to.file/clear-cache.includes.txt"/> 
    </fileset> 
    </delete> 
</target> 

삭제하려는 특정 폴더를 캐시 및 clear-cache.includes.txt의 저장소에서 쉽게 추가 할 수 있습니다.