Вы можете создать метамодуль ivy, который зависит от всех этих общих пакетов, а затем разрешить всем другим проектам разрешать общие библиотеки с помощью транзитивной зависимости:
<?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>
А для типичного проекта:
<?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>
Здесь я использую традиционные соглашения о присвоении имен конфигурации из переводов POM-> Ivy распознавателя Maven, хотя вы можете сопоставить имена конфигурации любым удобным для вас способом. Я обычно использую задачу ivy: install для копирования модулей Maven в наш репозиторий Ivy, поэтому я по большей части использую ivy.xmls по умолчанию. Если вы используете IvyRoundup, вам, прежде всего, потребуется отобразить конфигурацию «по умолчанию» транзитивно.