로컬 파일 시스템 Ivy 저장소가 있고 Nexus 또는 Artifactory와 같은 원격 Maven 저장소에 모든 아티팩트를 설치 (게시)해야합니다. 다음 줄을 따라 ivy 설치 작업에 대한 ant 스크립트를 작성했습니다 .
<ivy:install
organisation="apache"
module="commons-lang"
revision="2.0"
from="ivyfilesys" to="remotemaven"/>
이제 내 로컬 ivy 저장소 ( test
, compile
) 에 여러 구성 이 있으며 여기에있는 ivy.xml 파일에 선언되어 있습니다. 로컬 저장소는 아티팩트 당 두 개의 폴더, jar 및 ivy로 구성됩니다. Jars 폴더에는 jar가 포함되고 ivys 폴더에는 구성이 선언 된 ivy.xml이 포함됩니다. 또한 SHA 및 MD5 체크섬 파일이 있지만 다른 것은 없습니다.
Ivy가 Maven 저장소에 사용 가능한 구성에 대해 알려줄 것이라고 예상했지만 그렇지 않은 것 같습니다. 해결을 위해 새로 생성 된 리포지토리로 전환 한 후 Ivy는 방금 설치 한 아티팩트를 찾을 수 없어서 test
및 compile
구성이 누락 되었다고 주장합니다 .
로컬 저장소는 파일 기반으로 구성되며 문제없이 아티팩트를 해결할 수 있습니다. 원격 저장소는 ibiblio, m2와 호환됩니다.
<ibiblio name="remotemaven" m2compatible="true"
root="http://my.server:8081/"
pattern="[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
/>
루트는 서버에 구성됩니다. 설치된 아티팩트가 서버에 표시되므로 루트 및 인증이 올바르게 구성되었을 수 있습니다.
Ivy가 자체 ivy.xml을 존중하고 구성과 함께 Nexus 또는 Artifactory 저장소에 설치하여 나중에 해결할 수 있도록 만드는 방법입니까?
ivy가 Maven 저장소에서 구성을 설치하고 검색 할 수 있습니까?
간단한 대답은 아니오입니다.
Maven은 Ivy의 구성 개념을 지원하지 않습니다. 가장 가까운 비교는 Maven "범위"입니다. 이것들은 고정되어 있으며 ivy의 ibiblio 리졸버는 이를 구성에 매핑하는 방법을 이해합니다. 다음 답변에는 더 자세한 설명이 있습니다.
Maven 저장소에 아티팩트를 게시 할 때 Maven 메타 데이터 파일 인 pom.xml도 생성해야합니다. makepom 작업은 특정 메이븐 범위에 사용되어야하는 담쟁이 구성을 지정할 수 있습니다. 다음 답변이 유용 할 수 있습니다.
Ivy는 고정 된 수의 범위로 제한되지 않습니다. ivy 구성은 훨씬 더 유연하지만 각 구성이 표준 프로젝트 클래스 경로를 채우는 데 사용된다고 가정 할 수 없습니다 ....
따라서 결론적으로 로컬 ivy 저장소에서 Maven 저장소로 파일을 대량 전송하는 것은 다음과 같은 이유로 사소한 연습이 아닙니다.
내 경험상 가장 큰 문제는 그들이 어디에서 왔는지에 대한 기록이없는 많은 수의 타사 항아리입니다. Maven의 새 프로젝트를 지원하기 위해 Nexus 검색 API를 사용하여 Maven Central 데이터베이스에서 일치하는 레코드를 찾는 멋진 스크립트를 개발했습니다. 일반적으로이 접근 방식은 로컬에 저장되는 병의 수를 80 %까지 줄여줍니다.
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다