これは私のivy.xmlです:
<dependencies defaultconf="default">
<dependency org="com.mycompany" name="custom" rev="1.0"/>
</dependencies>
ivysettings.xml:
<ivysettings>
<settings defaultResolver="repo.mycompany.com" />
<resolvers>
<ibiblio name="repo.mycompany.com" root="http://repo.mycompany.com/maven/" m2compatible="true" usepoms="true" />
</resolvers>
</ivysettings>
Artifact com.mycompany:custom:1.0がmaven pomとして作成され、repo.mycompany.comに公開されました。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>custom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>logkit</groupId>
<artifactId>logkit</artifactId>
</exclusion>
<exclusion>
<groupId>avalon-framework</groupId>
<artifactId>avalon-framework</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
そのようなコードでツタのライブラリをダウンロードするとき:
<target name="ivy-init">
<mkdir dir="${internal-libs}"/>
<ivy:settings file="${ivy.settings.dir}/ivysettings.xml"/>
<ivy:retrieve pattern="${internal-libs}/[artifact]-[revision].[ext]" sync="true" />
</target>
ivyダウンロード除外されたdepsavalon-framework:avalon-framework:4.1.3およびlogkit:logkit:1.0.1
なんで?私はそれをpomで排除しました!
同じ単純なivy.xmlを維持しながら、ivyでそれを除外する方法は?