Just issued Pull Request #187 - https://github.com/gradle/gradle/pull/187
Included tests for pom packaging, snapshots, non-unique snapshots, and normal 
artifacts.

-- 
John Engelman


On Thursday, August 29, 2013 at 11:07 PM, John Engelman wrote:

> Great. I have the resolver part worked out, just writing some tests around 
> it. Using the extra information in the ModuleVersionMetaData will be very 
> helpful.
> 
> -- 
> John Engelman
> 
> 
> On Thursday, August 29, 2013 at 11:05 PM, Adam Murdoch [via Gradle] wrote:
> 
> > 
> > On 30/08/2013, at 7:38 AM, Adam Murdoch <[hidden email] 
> > (/user/SendEmail.jtp?type=node&node=5711777&i=0)> wrote:
> > > 
> > > On 30/08/2013, at 6:39 AM, johnrengelman <[hidden email] 
> > > (/user/SendEmail.jtp?type=node&node=5711777&i=1)> wrote:
> > > > I've gone back to the drawing board and came up with a simpler solution 
> > > > where
> > > > in ExternalResourceResolver
> > > > I check for any artifact existing and then only mark the artifact as
> > > > resolved by that repository if one is found.
> > > 
> > > We want to behave differently in this case for the Maven cache compared 
> > > to arbitrary repository. It's expected in the Maven cache for an artefact 
> > > to be missing, but it means a badly formed module everywhere else.
> > > 
> > > I think we want something like this:
> > > 
> > > 1. If we find a pom and no artifact in the Maven cache
> > > * If we can find the module in some other repository, silently ignore the 
> > > stuff in the Maven cache and use the module from the other repository.
> > > * If we cannot find the module in some other repository, fail with an 
> > > 'artefact missing' exception.
> > > 2. If we find a pom and no artefact in some repository, fail with an 
> > > 'artefact missing' exception.
> > > 
> > > Or, perhaps it might be nicer in #2 if we warn instead of fail when we 
> > > can find the module in another repository.
> > > 
> > > Regardless of exactly what we do here, it's not the resolvers 
> > > responsibility to decide whether to fail or continue the search. Instead, 
> > > it should just communicate what it found, so that `UserResolverChain`, 
> > > which is coordinating the search, can take care of stopping or continuing 
> > > or whatever. To do this, we might add some new states to 
> > > `BuildableModuleVersionMetaDataResolveResult`, so that the resolver can 
> > > let the search algorithm know that it found a badly formed or partial 
> > > module.
> > > 
> > > 
> > > > 
> > > > The problem I'm having is handling POM dependencies. There doesn't seem 
> > > > to
> > > > be enough information passed in the Module Descriptor to know if the
> > > > dependency that is currently being resolved has POM packaging.
> > > > 
> > > > I tried one work around by looking at the ResolvedArtifact for the 
> > > > module
> > > > descriptor and if it ends in ".pom" using the PomReader to parse it and 
> > > > get
> > > > the packaging. That worked, but then I ran into issues with some 
> > > > integration
> > > > tests where the the artifact packaging and classifiers didn't match
> > > > (ArtifactDependenciesIntegrationTests.canUseClassifiersCombinedWithArtifactWithNonStandardPackaging).
> > > > It appears that it was relying on the fact that the artifacts aren't 
> > > > checked
> > > > before attempting resolution.
> > > 
> > > I would change the `ModuleDescriptorParser` implementations to return a 
> > > `MutableModuleVersionMetaData` instead of `ModuleDescriptor` (this is the 
> > > plan anyway).
> > 
> > I ended up making this change. So now we can add stuff to 
> > ModuleVersionMetaData to describe something about whether we expect the 
> > module to have artefacts or not.
> > 
> > --
> > Adam Murdoch
> > Gradle Co-founder
> > http://www.gradle.org
> > VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
> > http://www.gradleware.com
> > 
> > Join us at the Gradle eXchange 2013, Oct 28th in London, UK: 
> > http://skillsmatter.com/event/java-jee/gradle-exchange-2013
> > 
> > 
> > 
> > 
> > If you reply to this email, your message will be added to the discussion 
> > below: 
> > http://gradle.1045684.n5.nabble.com/Maven-local-issues-tp5711584p5711777.html
> >  
> > To start a new topic under gradle-dev, email 
> > ml-node+s1045684n1436218...@n5.nabble.com 
> > (mailto:ml-node+s1045684n1436218...@n5.nabble.com) 
> > To unsubscribe from gradle-dev, click here 
> > (http://gradle.1045684.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1436218&code=am9obi5yLmVuZ2VsbWFuQGdtYWlsLmNvbXwxNDM2MjE4fDIyMTUyNjEzNQ==).
> > NAML 
> > (http://gradle.1045684.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml)
> >  
> 





--
View this message in context: 
http://gradle.1045684.n5.nabble.com/Maven-local-issues-tp5711584p5711780.html
Sent from the gradle-dev mailing list archive at Nabble.com.

Reply via email to