2012-01-10 4 views
1

나는 많은 아이비 리포 지 토리 (repository)에 많은 수의 리비전이있는 프로젝트를 만들고 있습니다. 전체 아티팩트에 대한 종속성 보고서를 작성하여 어떤 아티팩트의 버전이 다른 아티팩트의 어떤 개정판에 종속하는지 표시하고 싶습니다. 분명히 게시 된 ivy xml 파일을 구문 분석하기위한 스크립트를 만드는 것이 너무 어렵지는 않지만이 기능이 이미 존재하는 경우이를 사용합니다. repreport 작업과 같은 것이 전체적으로 유용 할 것입니다.아이비 리포트 전체 레포?

내 주요 목표는 다른 아티팩트에서 참조하지 않은 아티팩트에 대한 보고서를 가져와 리포에서 제거 할 후보 목록을 만드는 것입니다.

그래서 아이비는 저장소 전체에 대한 의존성 보고서를 작성하는 방법이 있습니까?

편집 :이 작업을 통해 아이비처럼 보입니다. repreport가 방법입니다. 여기

내 build.xml 파일입니다 :

<project name="Report Build" xmlns:ivy="antlib:org.apache.ivy.ant" basedir="."> 
    <property name="ivy.version" value="2.2.0"/> 
    <property name="ivy.home" value="${user.home}/.ivy2"/> 

    <target name="fetch-ivy" unless="offline" description="Install Ivy if it doesn't already exist"> 
     <mkdir dir="${ivy.home}"/> 
     <get 
       src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" 
       dest="${ivy.home}" usetimestamp="true"/> 
    </target> 

    <target name="init-ivy" depends="fetch-ivy" unless="ivy-initialized"> 
     <path id="ivy.lib.path"> 
      <fileset dir="${ivy.home}" includes="*.jar"/> 
     </path> 
     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/> 
     <property name="ivy-initialized" value="yes"/> 
    </target> 

    <target name="report" depends="init-ivy"> 
     <ivy:settings file="ivy-settings-report.xml" id="report.ivy.settings"/> 
     <ivy:repreport settingsref="report.ivy.settings"/> 
    </target> 
</project> 

그리고 여기 내 아이비 설정 파일입니다

<?xml version="1.0" encoding="UTF-8"?> 
<ivy-settings> 
    <settings defaultResolver="main"/> 
    <resolvers> 
     <chain name="main"> 
      <url name="internalartifacts" m2compatible="false"> 
       <artifact 
         pattern="http://internalartifacts.local/[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/> 
       <ivy pattern="http://internalartifacts.local/[organization]/[module]/[revision]/ivy-[revision].xml"/> 
      </url> 
     </chain> 
    </resolvers> 
</ivy-settings> 

답변

2

repreport에 대한 문서는 말한다 :

는 XML을 생성하려면 리포지토리에있는 모든 모듈의 최신 버전에 대한 보고서 :

<ivy:repreport /> 

은 제한 :이 작업은 저장소를 검색 할 수 을 필요로하며, 따라서 저장소 목록을 지원 리졸버로 제한됩니다. 에서는 m2compatible 모드를 사용하여 저장소에있는 모든 조직을보고하지 않습니다. 또한 조직을 나열하려면이 작업에는 사용 된 확인자 ( )에 [organization] 토큰이 필요합니다.

이렇게하면 완전히 작동합니다.

주석에 언급 된 내용 : 저장소에 이슈에 대한 파일이 ivy.xml이어야합니다. 그렇지 않으면 아이비는 이슈 간의 종속성을 인식 할 수 없으며 보고서는 비어있게됩니다.

+0

나는 그것을 실행 해 보았지만 결과가 돌아 오지 않고 빈 xml 파일을 생성했다. 나는 지금 그것을보고 있고 그것이 어떻게 작동하는지 잘 모르겠습니다. ivy : repreport를 실행할 경우, 사용할 repo를 어떻게 알 수 있습니까? 내 아이비 설정에 여러 가지가 있습니다. 별도의 설정 파일을 사용할 수있는 작업을위한 옵션이 있다는 것을 알았습니다 ... 그래서 단일 저장소를 지정할 수 있습니까? – user605331

+0

나는 그 보고서 (방금 하나의 resolver/repo)에 사용되는 특별한 ivysettings.xml을 만들 것이다. – oers

+0

작은 build.xml 파일과이를 위해 특수한 아이비 설정 파일을 만들었습니다. 그것을 실행해도 여전히 빈 보고서가 생성됩니다. 관련 파일의 전체 목록이있는 원래 게시물을 편집했습니다. – user605331