« Return to Thread: Using gradle/Ivy with special maven repositories

Re: Using gradle/Ivy with special maven repositories

by hdockter :: Rate this Message:

Reply to Author | View in Thread


On May 29, 2009, at 9:24 AM, Pfau, Matthias wrote:

> Hello,
> the java.net-Repositories are a bit special (both contain a  
> different subset of projects):
> * http://download.java.net/maven/2 -> Is a true maven2 repository
> * http://download.java.net/maven/1 -> Is a maven1 repository  
> (directory layout) which also contains maven2 poms. These poms  
> contain dependency descriptions that should be used, if possible.
>
> One Problem with when using Ivy's IBiblioResolver is that its  
> creators never thought about this combination (m1 directory  
> structure/m2 poms). One essential difference between m1 and m2  
> directory structures is how the organization is mapped to the file  
> system. Examples:
> * m1: "org.gradle" -> One Folder
> * m2: "org/gradle" -> Folder with subfolders
>
> That is why you can not make use of the poms in the repository http://download.java.net/maven/1 
>  which requires you to explicitly list all dependencies.
>
> The solution to this problem is rather easy, because of gradle's  
> design approach.
>
> 1. Create your own resolver. Place the following contents in a File  
> named '$projectDir/buildSrc/src/main/groovy/build/SunResolver.groovy':
>
> package build
>
> import org.apache.ivy.plugins.resolver.IBiblioResolver
> import org.apache.ivy.core.module.id.ModuleRevisionId
>
> class SunResolver extends IBiblioResolver {
>
>    protected ModuleRevisionId  
> convertM2IdForResourceSearch(ModuleRevisionId mrid) {
>        return mrid
>    }
> }
>
> 2. Use the Resolver when declaring your repositories:
>
> import build.*
>
> repositories {
> mavenRepo urls: 'http://download.java.net/maven/2'
> add(new SunResolver()) {
> name = 'java.net M1 Repo'
>  m2compatible = true
>  setRoot("http://download.java.net/maven/1/")
>  pattern = "[organisation]/[ext]s/[module]-[revision].[ext]"
> }
> }
>
> 3. Declare your dependencies (e.g. jax-ws)
>
> dependencies {
> compile 'com.sun.xml.ws:jaxws-rt:2.1.7'
> compile 'com.sun.xml.ws:jaxws-tools:2.1.7'
> }
>
> Kind regards,
> Matthias

Thanks for sharing this. Your are welcome to add a wiki page to our  
wiki for this.

- Hans

--
Hans Dockter
Gradle Project Manager
http://www.gradle.org



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: Using gradle/Ivy with special maven repositories