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
