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&amp;node=5712247&amp;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&amp;node=5712248&amp;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.

Reply via email to