Ivy beheben nicht arbeiten mit dynamischen Artefakt

Habe ich mit Ivy ein bisschen, aber ich glaube, ich habe noch eine Menge zu lernen.

Habe ich zwei Projekte. Ist eine web-app und das andere ist eine Bibliothek, auf die der web app hängt. Das set-up ist, dass die Bibliothek-Projekt wird kompiliert, um eine jar-Datei und veröffentlicht mit Ivy in ein Verzeichnis innerhalb des Projekts. In der web-Anwendung build-Datei, ich habe ein ant-target, ruft die Ivy beheben ant-task.

Was ich tun möchte, ist über die web-app mithilfe des dynamischen beheben-Modus während der Entwicklung (developer ' s lokaler Rechner) und die Standard-beheben-Modus für test und Produktion baut. Zuvor war ich anfügen eines Zeitstempels der Bibliothek-Archiv-Datei, so dass Ivy würde bemerken, die änderungen in der Datei, wenn die web-app versucht zu lösen, seine Abhängigkeit es. In Eclipse ist dies umständlich, da in der web-app, musste das Projekt werden aktualisiert, und in den build-Pfad angepaßt, jedes mal ein neues jar-Bibliothek veröffentlicht wurde. Publishing eine ähnlich genannte jar-Datei jedes mal wäre, finde ich, nur verlangen die Entwickler aktualisieren Sie das Projekt.

Das problem ist, dass die web-app ist nicht in der Lage zum abrufen der dynamischen jar-Datei.

Die Ausgabe die ich bekomme sieht ungefähr so aus:

resolve:
[ivy:configure] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/::
[ivy:configure] :: loading settings :: file = /Users/richard/workspace/webapp/web/WEB-INF/config/ivy/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.webapp#webapp;[email protected]
[ivy:resolve]   confs: [default]
[ivy:resolve]   found com.webapp#library;latest.integration in local
[ivy:resolve] :: resolution report :: resolve 142ms :: artifacts dl 0ms
---------------------------------------------------------------------
|                  |            modules            ||   artifacts   |
|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
|      default     |   1   |   0   |   0   |   0   ||   0   |   0   |
---------------------------------------------------------------------
[ivy:resolve] 
[ivy:resolve] :: problems summary ::
[ivy:resolve] :::: WARNINGS
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       :: com.webapp#library;latest.integration: impossible to resolve dynamic revision
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :::: ERRORS
[ivy:resolve]   impossible to resolve dynamic revision for com.webapp#library;latest.integration: check your configuration and make sure revision is part of your pattern
[ivy:resolve] 
[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED 
/Users/richard/workspace/webapp/build.xml:71: impossible to resolve dependencies:
resolve failed - see output for details

Die web-app beheben Ziel sieht wie folgt aus:

<target name="resolve" depends="load-ivy">
    <ivy:configure file="${ivy.dir}/ivysettings.xml" />

    <ivy:resolve 
        file="${ivy.dir}/ivy.xml" 
        resolveMode="${ivy.resolve.mode}"/>

    <ivy:retrieve pattern="${lib.dir}/[artifact]-[revision].[ext]" type="jar" sync="true" />
</target> 

In diesem Fall, ivy.beheben.mode hat den Wert 'dynamic' (ohne Anführungszeichen).

Die web-app Ivy-Datei ist einfach. Es sieht wie folgt aus:

<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.webapp" module="webapp"/>

    <dependencies>
        <dependency name="library" rev="${ivy.revision.default}" revConstraint="${ivy.revision.dynamic}" />
    </dependencies>

</ivy-module>

Während der Entwicklung, ivy.revision.Dynamik hat einen Wert von 'die Letzte.integration". Während bei der Herstellung oder Prüfung 'ivy.revision.default' hat den Wert '1.0'.

Irgendwelche Ideen? Bitte lassen Sie mich wissen, wenn es gibt mehr Informationen, die ich brauche zu liefern.

Dank!

InformationsquelleAutor richever | 2010-05-01

Schreibe einen Kommentar