我正在处理一个内部常青藤资源库,其中有相当数量的项目,每个项目都有很多修订版本。我想为整个存储库制作一个依赖关系报告,显示哪些版本的哪些工件取决于其他工件的哪些版本。显然,制作脚本来解析已发布的ivy xml文件并不难,但如果这个功能已经存在,我会使用它。类似代表任务的东西会很好,但对于整个回购。常春藤报告整个回购?
这里我的主要目标是获取没有被任何其他工件引用的工件报告,以便制作从回购库中删除的候选清单。
那么,常春藤有没有办法建立一个依赖关系报告和整个存储库?
编辑:通过这个工作,它看起来像常春藤: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>
我试过运行,但它回来没有结果,并生成一个空的XML文件。我正在看它,我不知道它是如何工作的。如果我只是运行ivy:repreport,它如何知道使用哪个回购?我有几个在我的常春藤设置。我注意到可以采取单独的设置文件的任务选项...是这样,我可以指定一个单一的回购? – user605331 2012-01-10 13:59:56
我会创建一个专门用于该报告的ivysettings.xml(只有一个解析器/回购)。 – oers 2012-01-10 14:03:39
为了达到这个目的,我创建了一个小的build.xml文件和一个特殊的ivy设置文件。运行它仍然会产生一个空的报告。我已经编辑了相关文件的完整列表的原始帖子。 – user605331 2012-01-10 14:34:13