我正在审查在我们的应用程序中使用Ivy的过程。我已经设置了一个简单的配置来拉下cobertura。
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="com"
module="adesa"
status="integration">
</info>
<configurations>
<conf name="runtime" description=""/>
</configurations>
<dependencies>
<dependency org="cobertura" name="cobertura" rev="1.8" transitive="true"/>
</dependencies>
</ivy-module>
我知道cobertura依赖于其他jar文件。那么如何获得其他jar文件?我在缓存目录中看到的唯一内容是cobertura jar文件。
这是我的ivysetting.xml
<ivysettings>
<settings defaultResolver="chained" />
<resolvers>
<chain name="chained" returnFirst="true">
<url name="apache" m2compatible="true">
<!--Apache -->
<artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://people.apache.org/repo/m2-incubating-repository/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="jboss" m2compatible="true">
<!-- JBoss -->
<artifact pattern="http://repository.jboss.com/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<ibiblio name="ibiblio" m2compatible="true" />
<url name="mvnrepos" m2compatible="true">
<!-- IBIBLIO-Mirror -->
<artifact pattern="http://mirrors.ibiblio.org/pub/mirrors/maven2/[organisation]/[module]/[branch]/[revision]/[branch]-[revision].[ext]" />
</url>
</chain>
</resolvers>
是否有可用于获取依赖项/ jar的其他存储库列表?
build.xml文件中的片段:
<target name="load-ivy">
<path id="ivy.lib.path">
<fileset dir="${basedir}/lib" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>
<target name="ivy-init" depends="load-ivy">
<mkdir dir="${dest.repo.dir}"/>
<ivy:settings id="basic.settings" file="${basedir}/ivysettings.xml"/>
</target>
<target name="ivy-clean" depends="ivy-init">
<ivy:cleancache settingsRef="basic.settings"/>
<delete dir="${ivy.cache.dir}" failonerror="true" />
<delete dir="${dest.repo.dir}"/>
</target>
<target name="ivy-download" depends="ivy-clean,ivy-init">
<ivy:retrieve settingsRef="basic.settings" pattern="${dest.repo.dir}/[artifact]/[artifact]-[revision].[ext]" />
</target>
<target name="ivy-report" depends="ivy-download">
<ivy:report settingsRef="basic.settings" todir="${basedir}/logs" />
</target>
答案 0 :(得分:5)
你的conf看起来与我的非常相似,除了我对cobertura有不同的依赖:
<dependency org="net.sourceforge.cobertura" name="cobertura" rev="1.9" conf="cobertura"/>
另外,我建议您在添加额外的存储库之前尝试使用默认的ivysettings.xml。
<target name="init.deps" description="Download (if needed) and resolve the dependencies." unless="deps.init">
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}" />
<ivy:resolve />
<ivy:cachepath pathid="ivy.path" conf="production" />
<property name="deps.init" value="true"/> <!-- guard against multiple ivy computations -->
</target>
<target name="compile" depends="init, record-build-number">
<javac srcdir="src" debug="true" destdir="build/classes">
<classpath>
<path refid="ivy.path" />
</classpath>
</javac>
</target>