Вы можете использовать распознаватель пакетов ivy , чтобы превратить любой загружаемый пакет в модуль ivy.
См. Также сводку плюща хранилище
Мой пример проекта состоит из следующих файлов:
$ find . -type f
./build.xml
./ivy.xml
./ivysettings.xml
./repository/net.sourceforge/ooweb/0.8.0/packager.xml
ivy.xml
Обычный файл плюща, объявляющий зависимость от модуля ooweb:
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="packager_demo"/>
<dependencies>
<dependency org="net.sourceforge" name="ooweb" rev="0.8.0"/>
</dependencies>
</ivy-module>
ivysettings.xml
Центральный репозиторий Maven настроен как репозиторий по умолчанию. Специальный распознаватель «упаковщик» используется для извлечения модуля ooweb .
Шаблон артефакт указывает на файл упаковщика, содержащий инструкции по загрузке артефактов модуля.
<ivysettings>
<settings defaultResolver="central"/>
<resolvers>
<ibiblio name="central" m2compatible="true"/>
<packager name="packager" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache" preserveBuildDirectories="false">
<ivy pattern="file:///${ivy.settings.dir}/repository/[organisation]/[module]/[revision]/ivy.xml"/>
<artifact pattern="file:///${ivy.settings.dir}/repository/[organisation]/[module]/[revision]/packager.xml"/>
</packager>
</resolvers>
<modules>
<module organisation="net.sourceforge" name="ooweb" resolver="packager"/>
</modules>
</ivysettings>
packager.xml
Вот магия. В объявлении resource указано расположение пакета tar. Раздел сборки содержит инструкции ANT о том, какие файлы перемещать в раздел артефактов модуля.
<packager-module version="1.0">
<property name="name" value="${ivy.packager.module}"/>
<property name="version" value="${ivy.packager.revision}"/>
<property name="packagename" value="${name}-${version}"/>
<resource dest="archive" url="http://sourceforge.net/projects/ooweb/files/ooweb/0.8.0/ooweb-0.8.0-bin.tar.gz/download" sha1="d886a3d48bf4380cbec3e6f7de029f01e5c55315" type="tar.gz"/>
<build>
<move file="archive/${packagename}/lib/${packagename}.jar" tofile="artifacts/jars/${name}.jar"/>
</build>
</packager-module>
Примечание: Под капотом ivy использует таблицу стилей XSLT для создания сценария ANT из объявления упаковщика. Этот скрипт ANT затем загрузит артефакт и поместит его в кеш плюща.
Обновление
Gradle встраивает плющ, поэтому это решение для упаковщика должно работать для двух технологий сборки. Смотрите этот ответ .