Apache Ivy Abhängigkeiten auflösen mit dem Eclipse-workspace, die während Ant-build

Ich bin mit Apache Ivy mit Eclipse (IvyDE) und versucht zu lösen das folgende Problem. Ich habe zwei Projekte, IvyParent und IvyChild, wo das Kind richtet sich auf die Muttergesellschaft. Ich habe die option gewählt für Eclipse-Ivy-Classpath-Container "Abhängigkeiten Auflösen in workspace".

Den Eclipse-autobuilder-funktioniert Super - ich bekomme alle meine Ivy Abhängigkeiten heruntergeladen und eingebunden. Ich habe sowohl die Eltern-und Kind-Projekte öffnen und ich kann machen Echtzeit-änderungen an der übergeordneten und finden Sie die Zusammenstellung Veränderungen in das Kind.

Das problem ist, wenn ich versuche, mit Ant zu bauen, die Kind-Projekt in ein jar. Meine Frage ist, wie kann ich Sie nutzen den Arbeitsbereich resolver während eine explizite Ant-build?

Ist, habe ich mich in die Ivy-Dateisystem Resolver, aber was ich versuche zu vermeiden, dass Ant Wiederaufbau des übergeordneten Projekts ausdrücklich vor Ant Gebäude das Kind.

Die Fehler, die ich erhalte ist folgende:

[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

Hier ist das übergeordnete Projekt 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>

Hier ist die Kind-Projekt 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>

Hier ist das Kind 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>

InformationsquelleAutor earthbounce | 2013-03-22

Schreibe einen Kommentar