ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wardrip, Paul" <PWard...@tandbergtv.com>
Subject Ivy 2.0.0 beta2: MakePom Patch (Enhancement)
Date Wed, 12 Mar 2008 22:08:39 GMT
I am working on a new build process for my company using Ivy and an
Archiva (Maven2 based) repository. I use the Ibiblio resolver to read
and SFTP to publish. SFTP is not ideal, but I read that webdav support
was currently broken in Ivy 2.0. I need to deploy projects in a Maven2
format for the repository and other users. I made some changes to the
MakePom task to handle projects with multiple artifacts. I thought they
may be useful so I wanted to pass them along.

Maven2 won't create more than one uniquely named artifact for a project,
unless you set the packaging to "pom". Then you have a separate pom for
each of the artifacts, referencing the project pom with a parent tag.
They would get deployed like this:

/myorg/mymodule/1.0/mymodule-1.0.pom
/myorg/artifact-core/1.0/artifact-core-1.0.pom
/myorg/artifact-core/1.0/artifact-core-1.0.jar
/myorg/artifact-util/1.0/artifact-util-1.0.pom
/myorg/artifact-util/1.0/artifact-util-1.0.jar

I changed the MakePom task to build separate poms when it detects
uniquely named artifacts. I have 2 patterns for my SFTP resolver. The
default pattern is used when there are no declared artifacts or when the
artifact name matches the module name. I have the task setting a
property "ivy.pom.descriptor.size" with the number of poms that were
generated. I use this property to decide which pattern to use:

Default Pattern:
/[organization]/[module]/[revision]/[module]-[revision].[ext]
Multi Artifact:
/[organization]/[artifact]/[revision]/[artifact]-[revision].[ext]

This works very well for my build process and repository, the only thing
that would be better is a resolver for Maven2 that does all of this
automatically. A good Maven2 resolver should build and publish the poms
automatically, without calling MakePom or declaring them as artifacts.
Use the Ibiblio functionality for reads, webdav for writes and handle
multiple artifact projects with a different pattern. 

------------
Paul Wardrip
Software Engineer, OpenStream
TANDBERG Television | Part of the Ericsson Group
4500 River Green Parkway | Duluth | GA 30096
Mobile: 770-312-2852 | AIM: paulwardrip
Email: pwardrip@tandbergtv.com | www.tandbergtv.com
<http://www.tandbergtv.com/> 

 

Mime
View raw message