Я использую муравей + плющ для проекта. Итак, давайте предположим, что мне нужно запустить <sql
задачу для ant, поэтому мне нужно сначала получить драйвер jdbc. Кроме того, драйвер требуется во время компиляции проекта. Итак, я хочу иметь 2 конфигурации:
- по умолчанию: для получения драйвера jdbc и других зависимостей проекта.
- jdbc: получить ТОЛЬКО драйвер jdbc.
А затем просто запустите задачу получения с различными конфигурациями, например:
<!--Fetch all project dependencies, including jdbc driver-->
<ivy:retrieve pattern="${build.lib.home}/[artifact].[ext]" conf="default" />
<!-- Fetch only jdbc driver-->
<ivy:retrieve pattern="${build.lib.home}/[artifact].[ext]" conf="jdbc" />
ivy.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="" module="notebook-ivy"/>
<configurations>
<conf name="default" visibility="public" extend="jdbc"/>
<conf name="jdbc" visibility="public"/>
</configurations>
<dependencies>
<dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="jdbc->default"/>
<dependency org="org.apache.camel" name="camel-core" rev="2.15.1"/>
</dependencies>
</ivy-module>
Я использую общедоступный mavencentral, поэтому не могу изменить конфигурацию зависимостей на сервере: ivysettings.xml
<ivysettings>
<settings defaultResolver="chain"/>
<resolvers>
<chain name="chain">
<ibiblio name="central" m2compatible="true" root="https://central.maven.org/maven2/"/>
</chain>
</resolvers>
</ivysettings>
Описанная выше конфигурация работает. Но это выглядит запутанно, когда default расширяет jdbc и jdbc расширяет default одновременно. Я новичок в ivy, поэтому мой вопрос: правильный ли это способ использования конфигураций для ivy.