Apache Ivy résoudre des dépendances à l'aide d'Eclipse espace de travail au cours Ant

Je suis en utilisant Apache Ivy avec Eclipse (IvyDE) et d'essayer de résoudre le problème suivant. J'ai deux projets, IvyParent et IvyChild, où l'enfant dépend du parent. J'ai l'option sélectionnée pour Eclipse Ivy Classpath Conteneur pour "Résoudre les dépendances dans l'espace de travail".

L'Éclipse de serveurs d'empaquetage automatique fonctionne très bien - je obtenir tout mes Ivy dépendances téléchargé et inclus. J'ai à la fois le parent et l'enfant projets ouverts, et je peux faire en temps réel des modifications de la mère et de voir la compilation des changements dans l'enfant.

Le problème est que lorsque j'essaie d'utiliser Ant pour construire le projet enfant dans un bocal. Ma question est, comment puis-je tirer parti de l'espace de travail de résolution au cours d'une explicite Ant?

J'ai regardé dans le Lierre système de fichiers résolveurs, mais ce que j'essaie d'éviter d'avoir à Ant reconstruire le projet parent explicitement avant Ant la construction de l'enfant.

L'erreur que j'obtiens est le suivant:

[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve]      module not found: org.example#ParentModule;latest.integration
[ivy:retrieve]  ==== local: tried
[ivy:retrieve]  ...
[ivy:retrieve]  ==== shared: tried
[ivy:retrieve]  ...
[ivy:retrieve]  ==== public: tried
[ivy:retrieve]  ...
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      ::          UNRESOLVED DEPENDENCIES         ::
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      :: org.example#ParentModule;latest.integration: not found
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::

BUILD FAILED
C:\Users\user\workspace\IvyExampleChild\build.xml:15: impossible to resolve dependencies:
    resolve failed - see output for details

Ici est le projet parent ivy.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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="org.example" module="ParentModule" status="integration" />
    <dependencies>
        <dependency org="commons-lang" name="commons-lang" rev="2.6"/>
    </dependencies>
</ivy-module>

Ici, est l'enfant du projet ivy.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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="org.example" module="ChildModule" status="integration" />
    <dependencies>
        <dependency org="org.example" name="ParentModule" rev="latest.integration"/>
    </dependencies>
</ivy-module>

Ici est l'enfant build.xml:

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="ChildModule" default="release">    
    <property name="build.dir" value="build" />
    <property name="build.dir.classes" value="${build.dir}/classes" />

    <property name="src.dir" value="src" />
    <property name="output.jar" value="${build.dir}/${ant.project.name}.jar" />

    <target name="clean">
        <delete includeemptydirs="true" quiet="true">
            <fileset dir="${build.dir}" />
        </delete>
    </target>

    <target name="apache-ivy" depends="clean">
        <ivy:retrieve />
        <ivy:cachepath pathid="ivy.build.path" conf="default" />
    </target>

    <target name="release" depends="apache-ivy">
        <echo message="compiling ${src.dir}..." />

        <mkdir dir="${build.dir}" />
        <mkdir dir="${build.dir.classes}" />

        <javac srcdir="${src.dir}" destdir="${build.dir.classes}" classpathref="ivy.build.path"/>
        <jar destfile="${output.jar}" basedir="${build.dir}"/>
    </target>
</project>

OriginalL'auteur earthbounce | 2013-03-22