You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by "Matt Inger (JIRA)" <ji...@apache.org> on 2007/10/17 02:40:50 UTC

[jira] Updated: (IVY-622) ImportBuildModule task to allow for using ivy to resolve a jar file, and import a build.xml build resource.

     [ https://issues.apache.org/jira/browse/IVY-622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Inger updated IVY-622:
---------------------------

    Attachment: importbuildmodule.diff

SVN diff file contains task code, configuration changes for the antlib.xml, documentation file, and changes to the documentation index.

Unit tests will follow sometime soon.

> ImportBuildModule task to allow for using ivy to resolve a jar file, and import a build.xml build resource.
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: IVY-622
>                 URL: https://issues.apache.org/jira/browse/IVY-622
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Ant
>    Affects Versions: 2.0.0-alpha-2
>            Reporter: Matt Inger
>         Attachments: importbuildmodule.diff
>
>
> The submitted task will perform an inline ivy resolution of either an .xml file, or a jar compressed archive (the file extension is irrelvant, as long as the ant <expand> task can deal with it).  It will then, if necessary, extract the downloaded archive.
> Finally, it will pick a specified resource (defaults to build.xml) and import it into the current ant project.
> This allows us to create reusable build modules, which can be located and imported using ivy.  This can allow an organisation to
> maintain a single set of build scripts which can handle all their modules, and publish the latest version to the ivy repository.  The individual
> module build scripts can then import them.  A relatively simple example follows
> <ivy:importbuildmodule
>     url="http://path/to/ivysettings.xml"
>     organisation="myorg"
>     module="build"
>     revision="latest.integration" />
> The net effect of this is to:
> 1.  Create an ivy settings with it's own reference id (so it does not affect other ivy tasks)
> 2.  Perform an inline resolution using the ivy settings, and build a fileset with the resolution
>       results (in fact, this task actually extends the IvyCacheFileset task).
> 3.   The first artifact in the resolution is then processed.
>       a.  If it is an xml file, it is imported from the cache directory using the ant <import> task
>       b.  Otherwise, the entire artifact is expanded in the cache using the ant <expand> task, and then a specific
>             resource (which defaults to "build.xml", but can be changed via an attribute) is imported
>             from the extracted archive.
> The main caveat is that your build module has to follow the same rules as when you use the <import> task.  Ie.
> to reference a "build.properties" that is packaged with your build module:
> <project name="build">
>     <dirname property="build.basedir" file="${ant.file.build}" />
>     <property file="${build.basedir}/build.properties" />
> </project>
>     

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.