Vous pouvez créer un méta-module de lierre, qui dépend sur tous ces paquets communs, et ont alors tous vos autres projets résolvent les bibliothèques communes par la dépendance transitive:
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="com.example" module="common-libs"/>
<configurations>
<conf name="runtime" transitive="true" visibility="public" />
<conf name="master" transitive="true" visibility="public" />
<conf name="compile" transitive="true" visibility="public" />
<conf name="default" transitive="true" visibility="public" extends="master" />
</configurations>
<dependencies>
<dependency org="oracle" name="ojdbc14_g" rev="10.2.0.3"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
<dependency org="tomcat" name="servlet-api" rev="6.0.16"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
<dependency org="junit" name="junit" rev="4.3"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
</dependencies>
</ivy-module>
et pour un projet typique:
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="com.example" module="myproject"/>
<configurations>
<conf name="runtime" transitive="true" visibility="public" />
<conf name="master" transitive="true" visibility="public" extends="runtime"/>
<conf name="compile" transitive="true" visibility="public" />
<conf name="default" transitive="true" visibility="public" extends="master" />
</configurations>
<dependencies>
<dependency org="com.example" name="common-libs" rev="latest.release"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
</dependencies>
</ivy-module>
Ici, j'utilise les conventions de dénomination de configuration traditionnelles des traductions POM-> Ivy du résolveur Maven, bien que vous puissiez mapper les noms de configuration d'une manière qui vous semble logique. J'ai tendance à utiliser la tâche ivy: install pour copier des modules Maven dans notre dépôt Ivy, donc j'utilise le plus souvent ivy.xmls par défaut. Si vous utilisez IvyRoundup, vous souhaiterez principalement mapper la configuration "par défaut" de manière transitive.