On Friday, 8 February 2013, Marshall Schor wrote:
> Thanks Stephen,
>
> I'm trying to figure out why I'm not seeing this in the actual staged
> artifacts,
> or in previous releases.
>
> Here's what I've concluded:
>
> The maven-gpg-plugin has a bug - it copies the pom.xml to the
> finalname.pom, in
> target, and then signs that, without substituting into the property
> variable in
> the finalname. So, if you look into /target, it's got the wrong name.
>
> But, when the install plugin installs, it
>
> (a) ignores the incorrectly named ...pom in the /target, and instead,
> copies
> the original pom to the install spot. You can see that in the run output
> for
> the install step:
>
> [INFO] Installing
> C:\au\t\tm-rc4\src-to-build\textmarker-2.0.0\textmarker-ep-engine\pom.xml
> to
> C:\Users\IBM_ADMIN\.m2\repository\org\apache\
> uima\textmarker-ep-engine\2.0.0\textmarker-ep-engine-2.0.0.pom
>
> (b) it does copy the incorrectly named .asc file to the repository, but
> (SURPRISE !) it fixes up the name in the target :-) :
The act of deploying standardises the names to the repository format. In a
sense <finalName> is an irrelevant distraction from Maven's point of view.
All it cares about is getting the artifact into the remote repository with
a name corresponding to the GAVCT coordinates
As a user, though, some people don't like renaming the file on disk in
their target dir, so for these people finalName is useful.
Still it would be best if the gpg plugin at least respected the user
somewhat.
So not a blocking bug, more an annoying one, at least by the sound of it.
>
> [INFO] Installing
>
> C:\au\t\tm-rc4\src-to-build\textmarker-2.0.0\textmarker-ep-engine\target\org.apache.uima.textmarker.engine_${parsedVersion
> .osgiVersion}.pom.asc to
>
> C:\Users\IBM_ADMIN\.m2\repository\org\apache\uima\textmarker-ep-engine\2.0.0\textmarker-ep-engine-2.0.0.pom.asc
>
> So, we're only seeing this issue due to the fact that we happened to look
> into
> the /target directory.
>
> -Marshall
>
> On 2/8/2013 12:33 PM, Stephen Connolly wrote:
> > Please read this:
> >
> >
> http://stackoverflow.com/questions/14725197/reading-properties-file-from-pom-file-in-maven/14727072#14727072
> >
> > You will conclude that the only solution is to make the finalName a
> > configuration parameter of the mojo so that the recursive property
> > evaluation code can compute the effective final value on injection of the
> > final configuration before invoking the mojo.
> >
> > An alternative solution would be to make the mojo pass the
> > project.getBuild.getFinalName() through the property interpolator before
> > use.
> >
> > Sounds like a bug. A patch with tests would be good. Ping me if you write
> > one and I'll apply the patch (if it looks good) and run a release.
> > Alternatively, you could ask any of the people in the Committer School (
> >
> http://javaadventure.blogspot.ie/2012/07/do-you-want-to-become-maven-committer.html
> )
> > if they would like to take this as a task (ok we only have one person in
> > the committer school: Chris Graham, but don't let that stop you, we've
> had
> > a 50% graduation rate so far)
> >
> > -Stephen
> >
> > On 8 February 2013 17:02, Marshall Schor <[email protected] <javascript:;>>
> wrote:
> >
> >> We have a POM, where the <build> specifies a final name like this:
> >>
> >>
> >>
> >>
> <finalName>org.apache.uima.textmarker.engine_${parsedVersion.osgiVersion}</finalName>
> >>
> >> We use the maven-build-helper plugin to set the variable to be the same
> as
> >> the
> >> version, except with a period before the SNAPSHOT qualifier, for
> example.
> >>
> >> This works fine for plugins like the maven-jar-plugin - it nicely
> creates
> >> jars
> >> using the substituted value, e.g.
> >> org.apache.uima.textmarker.engine_2.0.0.jar
> >>
> >> However, the maven-gpg-plugin, when copying the project's "pom.xml" file
> >> to the
> >> target/ to sign it, copies it to a file named like this:
> >>
> >> File pomToSign = new File( project.getBuild().getDirectory(),
> >> project.getBuild().getFinalName() + ".pom" );
> >> FileUtils.copyFile( project.getFile(), pomToSign )
> >>
> >> The code fragment: project.getBuild().getFinalName() must be getting the
> >> un-substituted/original version of the the finalName property, because
> we
> >> see
> >> the pom is copied into the target/ as
> >> org.apache.uima.textmarker.engine_${parsedVersion.osgiVersion}.pom
> >>
> >> We know the property is being properly defined, etc., because earlier
> steps
> >> (like the maven-jar-plugin) use this and have the correct string (with
> the
> >> substituted value).
> >>
> >> How can we fix this?
> >>
> >> -Marshall Schor
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]<javascript:;>
> >> For additional commands, e-mail: [email protected]<javascript:;>
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected] <javascript:;>
> For additional commands, e-mail: [email protected]<javascript:;>
>
>