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
>
>
>

Reply via email to