maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Riboe (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (MNG-3244) inherited site url not properly handling parameters
Date Sat, 23 Feb 2008 10:54:30 GMT

    [ http://jira.codehaus.org/browse/MNG-3244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_124745
] 

Jens Riboe commented on MNG-3244:
---------------------------------

[I sent this comment to the list, without any repsonse, so I decided to put them here - where
they belong]

As I understand it; the current rule implements implicit URLs as
${parent.url}/${project.artifactId}

For example:
<scm>
 <connection>${parentPOM.scm.connection}/${project.artifactId}</connection>
 ...
/scm>
Where parentPOM is a made-up symbol denoting an upward search for the pom property that follows
(scm.connection).

So, how about the following suggestion:
The Super POM contains this kind of definition for all URLs where this rule applies today.
When the effective POM
is computed for a sub-project it uses the "closest" url definition that contains the symbol
parentPOM. If none is
found expect the def in super pom, this one is used and the rule applies as it always has.

On the other hand, if one decides to put an url expression containing parentPOM into a POM
of type 'pom',
then there is a new definition and will be used. That means, we have a way to define how sub-project
urls should
be constructed. I would be delighted if I could define an expression like
   ${parentPOM.scm.connection}/${project.name}/trunk

There is a residual problem, however: I cannot define both an url expansion expression and
an actual url expression
that is intended to be used in sub-projects. The easiest solution, is just to have two organization
poms, the top-most
pom contains the url expansion expressions (overriding the rule from the super pom) and the
one beneath is the
original org pom, containing actual urls that will be used in the expansions further down.

I'm convinced there are other more elegant solutions. However, the suggestion above would
be fairly easy to implement
without breaking existing code and poms (or require a POM version increment), but still provide
a way for org-pom
designers to tweak the url expansions the way they want.

Comments / Objections ??? 

> inherited site url not properly handling parameters
> ---------------------------------------------------
>
>                 Key: MNG-3244
>                 URL: http://jira.codehaus.org/browse/MNG-3244
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Inheritance and Interpolation, Sites & Reporting
>    Affects Versions: 2.0.7
>            Reporter: Jacob Robertson
>            Assignee: Brian Fox
>             Fix For: 2.0.9
>
>         Attachments: fix-inherited-site-url.patch, guide-site.patch
>
>
> Here is the test case to reroduce this problem.  Take the following two pom.xml files
> <?xml version="1.0" encoding="UTF-8"?>
> <project>
> 	<groupId>org.bar</groupId>
> 	<artifactId>foo</artifactId>
> 	<name>foo</name>
> 	<version>1.0-SNAPSHOT</version>
> 	<packaging>pom</packaging>
> 	<modelVersion>4.0.0</modelVersion>
> 	<distributionManagement>
> 		<site>
> 			<id>foo-site</id>
> 			<url>file://C:/Documents and Settings/foo/.m2/site/${project.artifactId}</url>
> 		</site>
> 	</distributionManagement>
> </project>
> <?xml version="1.0" encoding="UTF-8"?>
> <project>
> 	<groupId>org.bar</groupId>
> 	<artifactId>baz</artifactId>
> 	<name>baz</name>
> 	<version>1.0-SNAPSHOT</version>
> 	<packaging>pom</packaging>
> 	<modelVersion>4.0.0</modelVersion>
> 	<parent>
> 		<artifactId>foo</artifactId>
> 		<groupId>org.bar</groupId>
> 		<version>1.0-SNAPSHOT</version>
> 	</parent>
> </project>
> And run the site-deploy goal on each.  What you get under the site directory is this
> - site
> /- foo
> ---/site docs
> /- baz
> ---/- baz (extra directory)
> --- ---/site docs
> This is the simplest test case.  In the case where I have a "grandparent" pom, the site
directory uses the grandparent/parent as the path to the site, and doesn't use the actual
artifactId of the artifact I'm creating the site for.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message