2011-03-08 12 views
3

두 개의 리졸버가 구성되었습니다. 하나는 회사 레포이고, 다른 하나는 현지 개발자 레포입니다. 내가 원하는 :ivy : 명시 적 리졸버로 해결

<ivy:resolve /> 
<ivy:install from="company" to="local" ... /> 

는 첫번째 해결이 회사의 repo에 직접 가서 필요한 모든 모듈을 수집하는 것이 필수적이다.

문제점 : 명시 적으로 정의 된 해결 프로그램을 사용하도록 해결할 수 없습니다. 내 설정 파일에서 "모듈"을 사용해 보았습니다.하지만 회사의 일부 모듈 만 가져 왔고 나머지는 여전히 로컬에서 읽혀집니다 (당시에는 비어있어 오류를 해결합니다).

파일 준비 중 하나와 로컬 개발 용 중 하나를 사용할 수 있지만 더 좋은 방법이 있어야합니다. 리졸버를 "게시"할 수 있지만 "해결"할 수없는 이유는 무엇입니까?

+1

설정 파일에 해결 프로그램을 어떻게 선언 했습니까? –

답변

5

왜 "게시"하여 해결자를 설정할 수 있지만 "해결"할 수 없습니까?

절대적으로 해결할 수 있습니다. 이것은 일반적으로 원하지 않았다고 언급 한 여러 설정 파일을 통해 수행됩니다. 실제로는 해결 호출의 속성 인 settingsRef과 함께 사용되는 둘 이상의 설정 파일을 사용하는 것이 일반적이지는 않습니다 (표준이 아닐 경우). 우리의 프로젝트에서

우리의 라인을 따라 뭔가 할 : 간단한 프로젝트에, 물론

... 
<target name="init-ivy" depends=""> 
    <ivy:settings id="install.settings" 
        file="${project.ivy.config.dir}/ivysettings-install.xml"/> 
    <ivy:settings id="internet.settings" 
        file="${project.ivy.config.dir}/ivysettings-internet.xml"/> 
    ... 
</target> 
... 
<!-- note init-ivy has already been called before this target runs --> 
<target name="resolve-internet" if="internet.connected" > 
     <echo>"internet connected! Resolving dependencies via internet..."<echo/> 
     <ivy:resolve settingsRef="internet.settings" 
        haltonfailure="false" failureproperty="resolve.failed"/> 
</target> 
... 

을, 당신은 항상 곁에합니다 (에 배치하여 중 하나를 "주"설정 파일이 자동으로 전화를받을 수 있습니다 루트 디렉토리 또는 ivy 등록 정보 편집)을 사용하여 설치 대상을 실행할 때만 "설치"설정을 사용하십시오.

+0

좋아, 나는 포기한다. 나는 설정 -A로 해결하고 설정 -B로 해결하는 사이에 캐시를 정리하지 않으면 "알 수없는 해결 프로그램 오류"를 처리하면서 제안한 여러 설정으로 다시 전환했습니다. 더 나은 방법이 있기를 바랬지 만 이것은 나를 위해 일합니다. –

관련 문제