2013-08-30 1 views
1

Ant/Ivy를 사용하는 대규모 빌드 시스템에서 작업하고 있습니다. 아이비를 사용하는 미리 정의 된 앤트 태스크를 사용하려고 시도합니다. ant 태스크를 게시하고이 에러가 발생합니다 :아이비에서 아티팩트를 게시하는 것이 불가능합니다 FileNotFoundException 오류 평균?

com.company.project1.proj1 # MySupportJar의 아티팩트를 게시 할 수 없으며 작업 @ server1 : java.io.FileNotFoundException : path_to/ivy-repository/com.company.project1.proj1/MySupportJar/5.1.3.part/MySupportJar-5.1.3.jar (해당 파일 또는 디렉토리 없음)

오류 메시지의 디렉토리는 버전 번호 부분 (5.1.3.part).

저는 아이비를 처음 접했지만 어떻게 작동하는지에 대한 기초를 얻었습니다. 나는이 오류의 정확한 의미를 많이 알 수 없으므로 누군가가 나를 설명하거나 문제를 해결할 수 있다고 생각한다면 거기에서 문제를 해결할 수있을 것입니다.

개미 대상

<target name="publish-shared" depends="ivyInit, resolve" 
     description="Publish to the shared repository"> 
    <ivy:publish pubrevision="5.1.3" 
       resolver="shared" 
       pubdate="${timestamp}" 
       forcedeliver="true" 
       update="true" 
       conf="distro, docs"> 
     <artifacts pattern="dist/[artifact].[ext]"/> 
    </ivy:publish> 
</target> 

아이비 파일 조각

<publications> 
    <artifact name="MySupportJar" type="jar" conf="distro" /> 
    <artifact name="MySupportJar-source" type="source" ext="jar" conf="docs" /> 
</publications> 

감사합니다.

+0

build.xml을 (적어도 샘플로) 제공 할 수 있습니까? 그 디렉토리가 존재합니까? –

+0

개미 대상을 질문에 추가했습니다. 또한 디렉토리는 "5.1.3.part"지점까지 존재합니다. 나는 그것이 어디에서 오는지 알지 못한다. 감사. – Yadrif

+0

ivy.xml 파일에 "발행물"절을 포함 시켰습니까? 참조 : http://stackoverflow.com/questions/8304562/issues-using-ivypublish-task/8317109#8317109 –

답변

3

모든 제안을 주셔서 감사합니다. 내가 찾지 못한 간단한 해결책으로 밝혀졌습니다.

문제는 /path_to/ivy-repository/com.company.project1의 사용 권한입니다. 나는 쓰기 권한이 없었습니다. .part 파일은 Ivy가 쓴 임시 파일입니다. Ivy는 임시 파일을 쓸 수 없으므로 파일을 읽지 못하면 찾지 못했습니다.

나중에 도움이 될 수 있도록 답변하고 있습니다.

감사합니다.

0

저는 아이비와 함께 Ant에 상당히 익숙합니다. 내가 한 것은 젠킨스와 함께 로컬 통합 Maven 저장소 (Artifactory)와 지속적인 통합 서버를 결합한 것입니다. 항아리를 만들 때 Maven pom.xml도 함께 만듭니다. 그런 다음 mvn deploy:file 명령을 사용하여 Maven 저장소에 원하는 빌드를 배포합니다.

개발자는 Jenkins에게 Promoted Build 플러그인을 통해 Maven 저장소에 jar 파일을 수동으로 배포합니다. 개발자는 Maven에 배포 할 빌드를 선택하고 버튼을 누르면 빌드가 배포됩니다.

실제로 두 개의 poms with each build. One is pom.xml and the other is pom-snapshot.xml`을 생성합니다. 우리는 각 빌드마다 스냅 샷을 배포하므로 다른 개발자가 공식 배포 된 최신 jar 대신 최신 jar를 사용할 수 있습니다. 관심이 있으시면 모든 것을 github에 넣었습니다.

필자가 본 유일한 Ant/Ivy 설명서는 Steve Loughram의 Manning의 Ant in Action입니다. 그게 아니라면 아이비와 함께 앤트를 시도한 적이 없을 것입니다. 아파치에서 온라인 Ant/Ivy 문서는 단지 끔찍한 것입니다.

나는 당신이 가진 것을 살펴 봤습니다. 나는 그것이 여러분의 ivy-settings.xml 파일에 문제가 될 수도 있다고 생각합니다. 어딘가에 파일을 게시하기위한 유효한 위치로 part 문자열이 표시됩니다. 그렇지 않으면, 나는 모른다.

앞서 말했듯이 우리는 사이트 저장소에 Maven 저장소를 사용하고 Maven을 사용하여 실제로 저장소를 저장소에 배치합니다. 나는 순수한 아이비에서 이것을하는 방법을 알아내는 것보다 그렇게 쉽게하는 것이 훨씬 간단하다는 것을 발견했다. 게다가 Maven 프로젝트는 Ant/Ivy 프로젝트의 jar 파일을 사용할 수도 있음을 의미합니다.