Ah.....there's the piece I was missing. Thank you for walking me through this. The change makes perfect sense then because it's dealing with the default behavior when you are not declaring a type.
Keep up the great work!! — Sent from Mailbox for iPhone On Thu, Feb 6, 2014 at 9:16 PM, Adam Murdoch [via Gradle] <ml-node+s1045684n5712252...@n5.nabble.com> wrote: > On 7 Feb 2014, at 2:13 pm, Adam Murdoch <adam.murd...@gradleware.com> wrote: >> >> On 7 Feb 2014, at 11:19 am, johnrengelman <john.r.engel...@gmail.com> wrote: >> >>> I just created and ran this POM file with Maven 3.0.3: >>> https://gist.github.com/johnrengelman/8855175 >>> >>> It simply declares 1 dependency to org.grails:grails-dependencies with a >>> type of pom. >>> >>> <dependencies> >>> <dependency> >>> <groupId>org.grails</groupId> >>> <artifactId>grails-dependencies</artifactId> >>> <version>2.3.5</version> >>> <type>pom</type> >>> </dependency> >>> </dependencies> >>> >>> I than ran 'mvn site' which generates a dependency report. >>> No errors were thrown and the dependency report includes the transitive >>> dependencies from the grails-dependencies POM. >> >> A dependency with type ‘pom’ isn’t quite the case that we’re talking about >> here. > Which means, of course, that I misread your question. I parsed "dependency > type is a POM” as “the pom has a packaging of type ‘pom’”. Sorry about the > confusion. >> The dependency you’ve declared above is equivalent to a dependency on >> ‘org.grails:grails-dependencies:2.3.5@pom’ in Gradle, which does work fine >> and isn’t affected by the change. >> >> We’re talking here about when the dependency does not declare a type. So, >> take the <type> element out and this will fail with Maven, and the >> equivalent ‘org.gradle:grails-dependencies:2.3.5’ will fail in Gradle. >> >> >>> >>> So, I'm failing to see how this isn't supported in Maven, but maybe I'm >>> missing a key detail here. >>> -- >>> John Engelman >>> >>> On Thursday, February 6, 2014 at 5:43 PM, Adam Murdoch [via Gradle] wrote: >>> >>>> >>>> On 7 Feb 2014, at 10:34 am, johnrengelman <[hidden email]> wrote: >>>> >>>>> Hmm, >>>>> I'm not sure I follow completely, so I'll just pose an example to see >>>>> what the answer is. >>>>> >>>>> The Grails-Gradle plugin automatically adds a dependency to >>>>> 'org.grails:grails-dependencies' and the dependency type is a POM. This >>>>> POM simply declares a number of transitive dependencies to other Grails >>>>> core component libraries and supporting framework libraries for that >>>>> version of Grails. From your answer below, this is a direct POM packaging >>>>> dependency and not a parent of a Jar dependency. In this situation, won't >>>>> the new code throw an exception because there isn't a Jar file associated >>>>> with the dependency? >>>> >>>> Yes it will. That’s the breaking change. It also won’t work with Maven. >>>> >>>> The Grails-Gradle plugin might instead generate a pom that imports >>>> org.grails:grails-dependencies instead of including it as a dependency. >>>> >>>> >>>>> >>>>> -- >>>>> John Engelman >>>>> >>>>> On Thursday, February 6, 2014 at 5:25 PM, Adam Murdoch [via Gradle] wrote: >>>>> >>>>>> >>>>>> On 7 Feb 2014, at 8:31 am, johnrengelman <<a >>>>>> href="x-msg://57/user/SendEmail.jtp?type=node&node=5712247&i=0" >>>>>> target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>> >>>>>>> Hi all - >>>>>>> I just saw this commit in the master branch which would put it on track >>>>>>> from >>>>>>> Gradle 1.12 - >>>>>>> https://github.com/gradle/gradle/commit/97fb925848249251129f7ea0d70f12bdf112f2d0 >>>>>>> <https://github.com/gradle/gradle/commit/97fb925848249251129f7ea0d70f12bdf112f2d0> >>>>>>> >>>>>>> >>>>>>> This introduces a breaking change (as noted in the release notes) >>>>>>> regarding >>>>>>> dependencies that have a 'pom' packing type. Basically, it forces >>>>>>> Gradle to >>>>>>> assume that a dependency also as an associated Jar regardless of the >>>>>>> packing >>>>>>> and if it doesn't it fails. >>>>>>> >>>>>>> I'm curious why this change is being made? I couldn't find a forum >>>>>>> topic or >>>>>>> recent JIRA ticket related to it. These was the behavior of Gradle <1.9 >>>>>>> and >>>>>>> prevented Gradle from being used on the same systems being used for >>>>>>> Maven >>>>>>> build (i.e. a CI server). This is because Maven installs a number of >>>>>>> artifacts like this into the local .m2 cache. For every dependency it >>>>>>> downloads the pom file into the local .m2 and then only downloads the >>>>>>> Jar >>>>>>> for the conflict resolved version. This leaves orphaned POM files in >>>>>>> the .m2 >>>>>>> and if a Gradle build comes along and wants that version, it would error >>>>>>> because the Jar file isn't available. >>>>>>> >>>>>>> It seems this commit is simply re-instating the previous behavior which >>>>>>> will >>>>>>> again make Gradle builds fail on systems that are also building Maven >>>>>>> projects (or even Grails projects using Aether since they utilizing the >>>>>>> .m2 >>>>>>> cache in the same manner). >>>>>> >>>>>> Don’t worry, the maven local behaviour hasn’t changed. It would be a bit >>>>>> unfortunate to add it in 1.9 only to take it out a couple of releases >>>>>> later. >>>>>> >>>>>> The change is to treat modules with packaging ‘pom’ the same way as >>>>>> every other kind of module when the module is used as a dependency (but >>>>>> not when it is used as a parent). >>>>>> >>>>>> There’re two reasons for this: >>>>>> >>>>>> 1. It’s what maven does. Packaging doesn’t have any effect at resolution >>>>>> time. >>>>>> 2. It removes the HEAD request to probe for the module jar. This, for >>>>>> example, has a performance impact for poms that are used as an imported >>>>>> pom or a parent pom (these graphs can get quite deep). >>>>>> >>>>>> >>>>>> -- >>>>>> Adam Murdoch >>>>>> Gradle Co-founder >>>>>> http://www.gradle.org >>>>>> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting >>>>>> http://www.gradleware.com >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> If you reply to this email, your message will be added to the discussion >>>>>> below: >>>>>> http://gradle.1045684.n5.nabble.com/Breaking-change-for-POM-packaging-in-Gradle-1-12-builds-tp5712246p5712247.html >>>>>> To start a new topic under gradle-dev, email <a >>>>>> href="x-msg://57/user/SendEmail.jtp?type=node&node=5712248&i=0" >>>>>> target="_top" rel="nofollow" link="external">[hidden email] >>>>>> To unsubscribe from Breaking change for POM packaging in Gradle 1.12 >>>>>> builds, click here. >>>>>> NAML >>>>> >>>>> >>>>> View this message in context: Re: Breaking change for POM packaging in >>>>> Gradle 1.12 builds >>>>> Sent from the gradle-dev mailing list archive at Nabble.com. >>>> >>>> >>>> -- >>>> Adam Murdoch >>>> Gradle Co-founder >>>> http://www.gradle.org >>>> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting >>>> http://www.gradleware.com >>>> >>>> >>>> >>>> >>>> >>>> If you reply to this email, your message will be added to the discussion >>>> below: >>>> http://gradle.1045684.n5.nabble.com/Breaking-change-for-POM-packaging-in-Gradle-1-12-builds-tp5712246p5712249.html >>>> To start a new topic under gradle-dev, email [hidden email] >>>> To unsubscribe from Breaking change for POM packaging in Gradle 1.12 >>>> builds, click here. >>>> NAML >>> >>> >>> View this message in context: Re: Breaking change for POM packaging in >>> Gradle 1.12 builds >>> Sent from the gradle-dev mailing list archive at Nabble.com. >> >> >> -- >> Adam Murdoch >> Gradle Co-founder >> http://www.gradle.org >> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting >> http://www.gradleware.com > -- > Adam Murdoch > Gradle Co-founder > http://www.gradle.org > VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting > http://www.gradleware.com > _______________________________________________ > If you reply to this email, your message will be added to the discussion > below: > http://gradle.1045684.n5.nabble.com/Breaking-change-for-POM-packaging-in-Gradle-1-12-builds-tp5712246p5712252.html > To start a new topic under gradle-dev, email > ml-node+s1045684n1436218...@n5.nabble.com > To unsubscribe from Breaking change for POM packaging in Gradle 1.12 builds, > visit > http://gradle.1045684.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5712246&code=am9obi5yLmVuZ2VsbWFuQGdtYWlsLmNvbXw1NzEyMjQ2fDIyMTUyNjEzNQ== -- View this message in context: http://gradle.1045684.n5.nabble.com/Breaking-change-for-POM-packaging-in-Gradle-1-12-builds-tp5712246p5712255.html Sent from the gradle-dev mailing list archive at Nabble.com.