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>
  • No labels