Great stuff!. If I can suggest an enhancement to MavenPom class is to be able
to set the "must have" using an API. They are listed here:
http://nexus.sonatype.org/oss-repository-hosting.html#4.

As a side question, any dates on 0.9 release?


Adam Murdoch-2 wrote:
> 
> 
> 
> On 2/03/10 2:23 AM, Shay Banon wrote:
>> Hi Hans,
>>
>>    Any update on this feature?
> 
> I think it's pretty much implemented now in trunk (minus user guide 
> updates).
> 
> The changes are to MavenPom. You use either the whenConfigured() or 
> withXml() method to adjust the pom after Gradle has configured it: 
> http://gradle.org/latest/docs/javadoc/org/gradle/api/artifacts/maven/MavenPom.html
> 
> Each MavenDeployer has an associated MavenPom:
> 
> uploadArchives {
>      repositories {
>         mavenDeployer {
>             assert pom instanceof MavenPom
>         }
>     }
> }
> 
> 
> There's an example usage in 
> $gradleHome/samples/maven/pomGeneration/build.gradle
> 
>>   I also use gradle for an open source project
>> and would like to get it into sonatype and in turn into central, and am
>> missing the handles to further configure the pom. Is there a jira issue
>> tracking this?
>>
>> Cheers,
>> Shay
>>
>>
>>
>> Hans Dockter wrote:
>>    
>>> Hi Nacho,
>>>
>>> unfortunately I can't see any hooks for this. But I have started to work
>>> on
>>> that. What we will do is to use a MavenProject class under the hood. We
>>> will
>>> provide a couple of convenient methods to configure it. But you can
>>> always
>>> access the native Maven class for configuration that is not exposed by
>>> the
>>> Gradle class. We should even add a third layer that provides a hook into
>>> the
>>> generated XML. I should make progress on this pretty soon. I hope I can
>>> commit something tomorrow.
>>>
>>> - Hans
>>>
>>> --
>>> Hans Dockter
>>> Founder, Gradle
>>> http://www.gradle.org, http://twitter.com/gradleorg
>>> CEO, Gradle Inc. - Gradle Training, Support, Consulting
>>> http://www.gradle.biz
>>>
>>>
>>> On Mon, Feb 22, 2010 at 12:42 PM, Nacho Coloma<[email protected]> 
>>> wrote:
>>>
>>>      
>>>> Thanks Hank. I was already working on my workaround, but I'm  stuck.
>>>>
>>>> The following code seems to work, but I don't know how to plug it
>>>> after the POM generation (I thought it was a separate task, but it's
>>>> not). Any help?
>>>>
>>>> ===
>>>>
>>>> def parsedPom = new XmlSlurper().parse(new
>>>> File('~/workspace/tldgen/build/poms/pom-default.xml'))
>>>> parsedPom.appendNode({
>>>>     name('The TLDGen project')
>>>>     description('Generate TLD and HTML files from Java annotations')
>>>>     url('http://code.google.com/p/tldgen/')
>>>>     scm {
>>>>         url('http://code.google.com/p/tldgen/source/browse/')
>>>>         connection('scm:svn:http://tldgen.googlecode.com/svn/trunk/')
>>>>     }
>>>>     licenses {
>>>>         license {
>>>>             name('The Apache Software License, Version 2.0')
>>>>             url('http://www.apache.org/licenses/LICENSE-2.0.txt')
>>>>         }
>>>>     }
>>>>     developers {
>>>>         developer {
>>>>             id('icoloma')
>>>>             name('Ignacio Coloma')
>>>>             email('[email protected]')
>>>>         }
>>>>     }
>>>>
>>>> }
>>>> )
>>>>
>>>> def output = new groovy.xml.StreamingMarkupBuilder().bind {
>>>>     mkp.xmlDeclaration()
>>>>     mkp.declareNamespace("":"http://maven.apache.org/POM/4.0.0";)
>>>>     mkp.yield parsedPom
>>>> }
>>>> println groovy.xml.XmlUtil.serialize(output)
>>>>
>>>>
>>>>
>>>> On Mon, Feb 22, 2010 at 12:41 PM, Hans Dockter<[email protected]>  wrote:
>>>>        
>>>>> Hi,
>>>>>
>>>>> Gradle needs to improve here. And I will start to work on this
>>>>>          
>>>> immediately.
>>>>        
>>>>> First of all I will add the relevant missing properties to the pom
>>>>>          
>>>> object.
>>>>        
>>>>> Furthermore there should be always a backdoor to add any property to a
>>>>>          
>>>> Maven
>>>>        
>>>>> pom (e.g. some Maven alpha version adds a new pom element which is not
>>>>>          
>>>> part
>>>>        
>>>>> of the Gradle pom object).
>>>>>
>>>>> We also will make it more intuitive to customize the Maven pom
>>>>>          
>>>> generation
>>>> by
>>>>        
>>>>> using dynamic properties for the relevant domain objects (e.g.
>>>>> dependencies).
>>>>>
>>>>> - Hans
>>>>>
>>>>> --
>>>>> Hans Dockter
>>>>> Founder, Gradle
>>>>> http://www.gradle.org, http://twitter.com/gradleorg
>>>>> CEO, Gradle Inc. - Gradle Training, Support, Consulting
>>>>> http://www.gradle.biz
>>>>>
>>>>> On Mon, Feb 22, 2010 at 10:53 AM, Nacho Coloma<[email protected]>
>>>>>          
>>>> wrote:
>>>>        
>>>>>> Just to make it clear: AFAIK, with the new way of uploading artifacts
>>>>>> to maven central (which goes through sonatype) any POM generated by
>>>>>> gradle will not be accepted.
>>>>>>
>>>>>> I am considering adding a task postprocessor that edits the generated
>>>>>> POM using the technique proposed by Paul here. I will give it a try
>>>>>> and post the conclusion if successful.
>>>>>>
>>>>>> Anyway, this is something that should be tacked by the maven plugin
>>>>>>            
>>>> IMHO.
>>>>        
>>>>>> On Mon, Feb 22, 2010 at 9:51 AM, Paul Speed
>>>>>> <[email protected]>  wrote:
>>>>>>            
>>>>>>> I don't have much to offer but I'm also in this boat... though not
>>>>>>>              
>>>> as
>>>>        
>>>>>>> far
>>>>>>> along as you are, I have several projects on path to maven central
>>>>>>>              
>>>> when
>>>>        
>>>>>>> all
>>>>>>> of the issues are sorted out.
>>>>>>>
>>>>>>> I'm interested enough that I've even looked into the source to see
>>>>>>>              
>>>> if
>>>>        
>>>>>>> there
>>>>>>> is a way to somehow hack in a solution.  I can see that there are
>>>>>>> various
>>>>>>> elements of a MavenPomWriter that have interfaces and
>>>>>>>              
>>>> implementations
>>>>        
>>>>>>> but
>>>>>>> I've found no way to inject a custom implementation.  As a hack, it
>>>>>>> would
>>>>>>> seem that if one were to somehow override the
>>>>>>>              
>>>> DefaultPomModuleIdWriter
>>>>        
>>>>>>> that
>>>>>>> it could be hacked to also output this other project information.
>>>>>>>              
>>>>   It's
>>>>        
>>>>>>> not
>>>>>>> it's job, but it's the only one placed at the right point in the
>>>>>>>              
>>>> chain
>>>>        
>>>>>>> to do
>>>>>>> it easily.
>>>>>>>
>>>>>>> Obviously, it would be nice of the gradle project supported at least
>>>>>>> some of
>>>>>>> these settings which might be more generally useful.
>>>>>>>
>>>>>>> In lieu of that, I wonder what it would take to add a sort of
>>>>>>>              
>>>> general
>>>>        
>>>>>>> "projectDetails" Map where any sort of string or nested Map could be
>>>>>>>              
>>>> set
>>>>        
>>>>>>> that would then be output in a generic way as XML to the generated
>>>>>>>              
>>>> POM.
>>>>        
>>>>>>> There wouldn't be any model checks, but at least then we could
>>>>>>>              
>>>> specify
>>>>        
>>>>>>> things like:
>>>>>>> projectDetails.description = "Foo"
>>>>>>> projectDetails.licenses = [
>>>>>>>         license = [
>>>>>>>               name: 'FooBar'
>>>>>>>               url: 'http://..../'
>>>>>>>             ]
>>>>>>>     ]
>>>>>>>
>>>>>>> ...and so on, with minimal upfront changes required to gradle
>>>>>>>              
>>>> internals.
>>>>        
>>>>>>> Just my random $0.02,
>>>>>>> -Paul
>>>>>>>
>>>>>>> Nacho Coloma wrote:
>>>>>>>              
>>>>>>>> Hi, we are trying to make a final release with a gradle-generated
>>>>>>>>                
>>>> POM.
>>>>        
>>>>>>>> SNAPSHOT releases were doing fine, but for a final release that
>>>>>>>>                
>>>> would
>>>>        
>>>>>>>> make it to maven central the new oss.sonatype.org upload process
>>>>>>>>                
>>>> fails
>>>>        
>>>>>>>> to validate the POM:
>>>>>>>>
>>>>>>>> Failed to validate
>>>>>>>>                
>>>> '/org/extrema-sistemas/tldgen/1.0/tldgen-1.0.pom'
>>>>        
>>>>>>>> on repository 'orgextrema-sistemas-142'.
>>>>>>>>
>>>>>>>> No project name found in POM.
>>>>>>>> No project description found in POM.
>>>>>>>> No project URL found in POM.
>>>>>>>> No license found in POM.
>>>>>>>> No SCM URL found in POM.
>>>>>>>> No developers found in POM.
>>>>>>>>
>>>>>>>> I could not find any way to specify any of these in current Gradle
>>>>>>>> sources (even MavenPom.setLicenseHeader would not work, since it is
>>>>>>>> expecting a<license>  XML entry). Is there anything I am missing?
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> Nacho.
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>> ---------------------------------------------------------------------
>>>>        
>>>>>>>> To unsubscribe from this list, please visit:
>>>>>>>>
>>>>>>>>     http://xircles.codehaus.org/manage_email
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>
>>>>>>>
>>>>>>>              
>>>> ---------------------------------------------------------------------
>>>>        
>>>>>>> To unsubscribe from this list, please visit:
>>>>>>>
>>>>>>>    http://xircles.codehaus.org/manage_email
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe from this list, please visit:
>>>>>>
>>>>>>     http://xircles.codehaus.org/manage_email
>>>>>>
>>>>>>
>>>>>>            
>>>>>
>>>>>          
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe from this list, please visit:
>>>>
>>>>     http://xircles.codehaus.org/manage_email
>>>>
>>>>
>>>>
>>>>        
>>>
>>>      
>>    
> 
> -- 
> Adam Murdoch
> Gradle Developer
> http://www.gradle.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Incomplete-POM-generation-tp27674778p27750598.html
Sent from the gradle-user mailing list archive at Nabble.com.


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

    http://xircles.codehaus.org/manage_email


Reply via email to