Ant Ant+Ivy mit multiplen Modulen im selben Projekt.

Robert Zenz

Top Contributor
Ich bin am experimentieren und probieren von Ant+Ivy, habe dabei aber ein Verstaendnisproblem was mehrere Module im gleichen Projekt angeht wenn diese von einander abhaengen. Nehmen wir mal folgende Projekt-Konstellation an:

Code:
project
  |-modules
  |    |-module_a
  |    |  |-src
  |    |  |-build.xml
  |    |  \-ivy.xml
  |    \-module_b
  |       |-src
  |       |-build.xml
  |       \-ivy.xml
  \-build.xml

"module_b" haengt natuerlich von "module_a" ab, diese Abhaengigkeit kann man auch sehr gut abbilden mit Ivy:

XML:
<dependency org="project" name="module_a" rev="latest.integration" conf="module"/>

In der "module_b/build.xml" kann ich mir auch einen Klassenpfad mit dieser Abhaengigkeit aufbauen:

XML:
<ivy:cachepath pathid="classpath.module" conf="module"/>

Das Problem welches ich hier jetzt aber leider habe, ist dass dieser Klassenpfad dann nicht auf "module_a" direkt zeigt, sondern auf die gecachten Artefakte. Damit ergeben sich aber einige Probleme, zum Beispiel dass "module_b" nur gebaut werden kann wenn "module_a" zuvor komplett gebaut und das Artefakt in den Cache geschoben wurde. Daraus ergibt sich das es relativ komplex ist Aenderungen aus "module_a" zu propagieren wenn man ebenfalls gerade an "module_b" arbeitet. Das koennte ich in Ant umgehen in dem ich den Klassenpfad haendisch korrigiere beziehungsweise erweitere, dann habe ich die Abhaengigkeiten aber an zwei Stellen abgebildet. Auch loest dies nicht das Problem dass wenn Ivy den Klassenpfad aufbaut es versucht das Artefakt zu finden, welches unter Umstaenden so nicht existiert.

Also eine Loesung waere wenn ich Ivy entweder sagen koennte dass fuer diese Abhaengigkeit dieses Verzeichnis an class-Dateien verwendet werden soll, oder dass diese Abhaengigkeit beim aufloesen vom Pfad zu ignorieren ist (haendisches einbinden des Verzeichnises in Ant).

Jemand eine Idee dazu oder hat jemand so etwas schonmal umgesetzt?
 

Ähnliche Java Themen

Neue Themen


Oben