我正在审查我们应用程序中使用常春藤的使用。我已经设置了一个简单的配置,以拉下科伯拉拉。

<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> 

是否有可用于获得依赖性/罐子的其他存储库列表?


来自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>
有帮助吗?

解决方案

您的conf看起来与我非常相似,除了我对科伯拉的依赖性不同:

<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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top