简体   繁体   English

如何获得与常春藤的依赖

[英]How to get dependency with Ivy

I am in the process of reviewing the use of Ivy in our application. 我正在审查我们的应用程序中使用Ivy的过程。 I have set up a simple configuration to pull down cobertura. 我已经建立了一个简单的配置来下拉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>

I know that cobertura has dependencies on other jar files. 我知道cobertura依赖于其他jar文件。 So how does one get those other jar files? 那么如何获得其他jar文件呢? The only thing that I see in my cache directory is the cobertura jar file. 我在缓存目录中唯一看到的是cobertura jar文件。

Here is my ivysetting.xml 这是我的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> 

Are there list of other repositories that can be used to get dependencies/jars? 是否有其他可用于获取依赖关系/ jar的存储库列表?


Snippet from the build.xml file: 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>

Your conf looks very similar to mine, except I have a different dependency for cobertura: 您的conf与我的conf非常相似,除了我对cobertura的依赖不同:

<dependency org="net.sourceforge.cobertura" name="cobertura" rev="1.9" conf="cobertura"/>

Also I suggest that you try with the default ivysettings.xml before adding extra repositories. 另外,我建议您在添加额外的存储库之前尝试使用默认的ivysettings.xml。


Sample snippets 样本片段

Ivy classpath resolution: 常春藤类路径解析:

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

Use ivy path for compilation 使用常春藤路径进行编译

<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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM