Hi Jon,

You can write a plugin that tends to the afterRemoteDownload() callback and
generates and saves the pom.xml in a local repo that uses the maven layout.
Sounds like you already have a good foundation in place for supporting this.
Then, as Eli suggested, you can have a virtual repo (using maven layout)
that wraps both your ivy remote repo cache and the local maven repo under a
single URL.
When/if your ivy repo becomes irrelevant, you can move/copy all artifacts
to the local maven repo (this entails a cheap copy/move due Artifactory's
checksum based storage), and automatic layout translation will put the
artifacts in the right location, according to standard maven layout.

The way users take advantage of plugins varies greatly to support many
custom use cases. We've started putting together a small
repo<https://github.com/JFrogDev/artifactory-user-plugins>with sample
plugins, and it'd be great to have a plugin such as this one as
a contribution. Let us know if you need any help with this (you can also
contact [email protected]).

Thanks,
Yoav

On Wed, Feb 8, 2012 at 2:26 AM, joncourt <[email protected]> wrote:

> Hi Eli,
>
> Thanks for your reply.
>
> In summary my question now is - is it possible to build a plugin to
> artifactory to generate a pom.xml on the way from the remote ivy repo to
> the
> local maven style repo? If so do you know of a good reference I can use to
> achieve it?
>
> *Why?*
> I have a proxy repo setup in Ivy with remote set to our custom ivy layout
> and local set to the default maven layout - our maven projects will use
> this
> proxy repo as we roll off our ant-ivy build onto a maven build. I like
> ant/ivy and maven; maven makes considerably more sense here however - hence
> the move.
>
> Reading between the lines of your reply it's clear I've missed a key bit of
> understanding with respect to Artifactory. I find myself assuming that
> Artifactory is 'on-the-fly' translating the ivy.xml artifact to a pom
> syntax
> that our maven builds can read on  the way from our Ivy rep through the
> Artifactory proxy. When you think about it this would be rather difficult
> to
> generically support - especially since our ivy files don't use the standard
> maven configurations (master, compile, runtime, ....etc).
>
> What I */could/* do, as you say, is create a maven plugin that can read the
> ivy.xml and translate it to it's own domain language. I can envisage a bit
> of ivy api usage, perhaps a call to the makepom functionality that Ivy has.
> I have used the Ant task which uses this feature quite extensively in the
> past and found that if I added a bit of XSL to powerup the output pom (in
> order to support some of the conflict manager and exclusion syntax that ivy
> supports) it worked very well. The limitations of ivy's makepom
> functionality wouldn't affect us here I think as we make little or no usage
> of the conflict resolution features of ivy.
>
> What I would /*like*/ to do is create an Artifactory plugin that generates
> a
> pom from the Ivy.xml as it caches the artifacts into the maven layout local
> repo from the remote repo. This pom could then be used by the maven
> projects
> to resolve transient dependencies etc... this way our legacy code can be
> migrated as we use it, converted builds can go straight into a maven repo
> and legacy ant/ivy builds can continue to go into the ivy repo without
> change. When we're on maven completely the ivy repo will age gracefully
> until we need it no more and turn it off.  Of course ivy can read the maven
> repo so legacy projects can easily depend on maven built projects. A maven
> plugin will achieve all this too i guess - but it doesn't feel as tidy to
> me.
>
> Is this reasonable - or have I missed something that would block it?
>
> NB: I'd love to give Gradle a go, ain't gonna happen soon though :).
> Probably doesn't quite make sense here either - some of the reasons for the
> maven switch are not yet supported by gradle.
>
> Regards,
> Jon
>
>
> Eli Givoni wrote
> >
> > Hi Jon,
> >
> > How are you planing to make maven resolve dependencies from ivy.xml? It
> > sounds like you are ready to use Gradle :)
> >
> > Once you find a way to process the ivy.xml inside your maven job  you can
> > use a single Virtual repository layout conversion to handle Ivy and Maven
> > requests, you can read all about Repositories layouts
> > here&lt;
> http://wiki.jfrog.org/confluence/display/RTF/Repository+Layouts&gt;.
> > Basically you set up one Virtual repository with maven-2-default layout
> > set. The ivy.xml should be deployed on an Ivy layout repository. When an
> > ivy layout request will hit the virtual repository it will know how to
> > translate the path for example maven/way/path to ivy.way/path and resolve
> > the ivy.xml and ivy dependencies.
> >
> > HTH,
> >
> > Eli
> >
> >
> > On Thu, Feb 2, 2012 at 4:48 AM, joncourt &lt;jon.court@&gt; wrote:
> >
> >> Hi,
> >>
> >> Is it possible to utilise a pure ivy.xml artifact as a way of coalescing
> >> a
> >> bunch of dependencies and expose it to maven based projects?
> >>
> >> We have a bunch of these types of artifacts which in our ivy repo which
> >> don't actually have any jars in them but are used to specify a load of
> >> transient dependencies. I can't resolve them at the moment using any of
> >> the
> >> combinations of a dependency in maven (i.e. combo's of classifier and
> >> type).
> >> You can do this with pure maven or pure ivy - doesn't seem to translate
> >> however.
> >>
> >> Regards,
> >> Jon
> >>
> >> --
> >> View this message in context:
> >>
> http://forums.jfrog.org/Pure-ivy-xml-artifact-resolution-tp7245579p7245579.html
> >> Sent from the Artifactory - Users mailing list archive at Nabble.com.
> >>
> >>
> >>
> ------------------------------------------------------------------------------
> >> Keep Your Developer Skills Current with LearnDevNow!
> >> The most comprehensive online learning library for Microsoft developers
> >> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> >> Metro Style Apps, more. Free future releases when you subscribe now!
> >> http://p.sf.net/sfu/learndevnow-d2d
> >> _______________________________________________
> >> Artifactory-users mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/artifactory-users
> >>
> >
> >
> ------------------------------------------------------------------------------
> > Keep Your Developer Skills Current with LearnDevNow!
> > The most comprehensive online learning library for Microsoft developers
> > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> > Metro Style Apps, more. Free future releases when you subscribe now!
> > http://p.sf.net/sfu/learndevnow-d2d
> > _______________________________________________
> > Artifactory-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/artifactory-users
> >
>
>
> --
> View this message in context:
> http://artifactory-users.108859.n3.nabble.com/Pure-ivy-xml-artifact-resolution-tp3709002p3724446.html
> Sent from the Artifactory - Users mailing list archive at Nabble.com.
>
>
> ------------------------------------------------------------------------------
> Keep Your Developer Skills Current with LearnDevNow!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-d2d
> _______________________________________________
> Artifactory-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/artifactory-users
>
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Artifactory-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/artifactory-users

Reply via email to