The following items in ivysetting.xml need to be configured for Sigil.
Sigil Parser
The sigil-parser takes the following optional attributes:
- delegateType the parser type that Sigil delegates to; default it the ivy parser.
- delegateFile the name of the file accepted by the delegate parser; default is ivy.xml.
- keepDependencies a regular expression that matches the artifact names of any dependencies that should be kept; default is for Sigil to ignore all existing dependencies.
- quiet produce less output during the resolution process.
and an override child element:
This is only needed when a delegate parser expects Ant variables to be set during the ivy:buildlist task (or the ProjectRepository initialisation), which they are not. The delegate parser should really be fixed, as otherwise the ivy:buildlist task won't work without this workaround.
- name the name of the Ivy variable that will be over-ridden
- pattern a regular expression matching the resource directory path
- replace the value to set
<typedef name="sigil-parser" classname="org.cauldron.bld.ivy.SigilParser"/> <parsers> <!-- sigil-parser must be last, as last parser takes precedence --> <sigil-parser delegateType="build" delegateFile="build.xml" quiet="true" keepDependencies="(^spring-components-.*)|(.*-cmpt$)"> <override name="module" pattern=".*/([^/]+)/([^/]+)$" replace="$1"/> <override name="ant.project.name" pattern=".*/([^/]+)/([^/]+)$" replace="$1-$2"/> </sigil-parser> </parsers>
Sigil Resolver
The sigil-resolver takes two mandatory attributes:
- name the resolver name
- config the sigil repository configuration properties file
<typedef name="sigil-resolver" classname="org.cauldron.bld.ivy.SigilResolver"/> <resolvers> <sigil-resolver name="sigil" config="${ivy.settings.dir}/sigil-repo.properties"/> ... </resolvers>
Modules
Sigil injects dependencies with organisation="sigil"
. You need to ensure that Ivy uses the sigil-resolver to resolve such dependecies:
<modules> <module organisation="sigil" name=".*" resolver="sigil" /> ... </modules>