[ 
http://jira.codehaus.org/browse/MSITE-409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=182352#action_182352
 ] 

Dennis Lundberg edited comment on MSITE-409 at 7/9/09 1:01 PM:
---------------------------------------------------------------

So here is what I see going on.  I am building a number of projects involving a 
multi-level parent-pom hierarchy.  Here are the projects in my reactor just 
before I build the menu items for the Module section:

[INFO] Reactor projects:
        base-xml        : ../base-xml
        base-parent-pom : ../../base-parent-pom
        utils-core      : ../../base-parent-pom/utils-core
        utils-cli       : ../../base-parent-pom/utils-cli
        buildtools-parent-pom   : ../../../base-parent-pom/buildtools-parent-pom
        buildtools-core : 
../../../base-parent-pom/buildtools-parent-pom/buildtools-core
        maven-buildtools-plugin : 
../../../base-parent-pom/buildtools-parent-pom/maven-buildtools-plugin
        buildtools      : 
../../../base-parent-pom/buildtools-parent-pom/buildtools
        buildtools-aggregator-project   : 
../../../base-parent-pom/buildtools-parent-pom/buildtools-aggregator-project

NOTE: All the relative paths at this point are correct.  If Doxia site tools 
would leave them as they are, everything would be peachy.

The last project in this list is the module-pom.  It just aggregates and 
creates APT documentation.

NOTICE that ALL URLs are relative.  ALL of them.  This is set up by the 
SiteStageMojo class.

In maven-doxia-tools-1.0.2, DefaultSiteTool#appendMenuItem (around line 1447), 
it is taking the original relative path for each project, and re-relativizing 
against the relative path of the buildtools-aggregator-project. That is, 
DefaultSiteTool is running:

*    getRelativePath(project, aggregatorProject)  

where

*    project might be ../../base-parent-pom/utils-cli
and
*    aggregatorProject is 
../../../base-parent-pom/buildtools-parent-pom/buildtools-aggregator-project

The funny thing is, the original paths are correct.  The code that puts the 
paths into the menus is screwing it up.

So DefaultSiteTool is relativizing a relative path against a relative path, and 
I think that is where the problem lies.  I am looking for a good solution to 
this problem, but I will be the first to admit that I don't understand all 
ramifications of code changes here.

--------------------------------------------------------------------------------

UPDATE:

I commented out all the references to outputRelativePath in 
SiteStageMojo#execute, like this.

{code}
project.setUrl( /*outputRelativePath +*/ "/" + structureProject );
{code}

This makes all the project URLs semi-absolute. 

Now it all seems to work.  I am not sure if this is the best fix, but what's 
released right now is definitely broken.

      was (Author: jasonsmith):
    So here is what I see going on.  I am building a number of projects 
involving a multi-level parent-pom hierarchy.  Here are the projects in my 
reactor just before I build the menu items for the Module section:

[INFO] Reactor projects:
        base-xml        : ../base-xml
        base-parent-pom : ../../base-parent-pom
        utils-core      : ../../base-parent-pom/utils-core
        utils-cli       : ../../base-parent-pom/utils-cli
        buildtools-parent-pom   : ../../../base-parent-pom/buildtools-parent-pom
        buildtools-core : 
../../../base-parent-pom/buildtools-parent-pom/buildtools-core
        maven-buildtools-plugin : 
../../../base-parent-pom/buildtools-parent-pom/maven-buildtools-plugin
        buildtools      : 
../../../base-parent-pom/buildtools-parent-pom/buildtools
        buildtools-aggregator-project   : 
../../../base-parent-pom/buildtools-parent-pom/buildtools-aggregator-project

NOTE: All the relative paths at this point are correct.  If Doxia site tools 
would leave them as they are, everything would be peachy.

The last project in this list is the module-pom.  It just aggregates and 
creates APT documentation.

NOTICE that ALL URLs are relative.  ALL of them.  This is set up by the 
SiteStageMojo class.

In maven-doxia-tools-1.0.2, DefaultSiteTool#appendMenuItem (around line 1447), 
it is taking the original relative path for each project, and re-relativizing 
against the relative path of the buildtools-aggregator-project. That is, 
DefaultSiteTool is running:

*    getRelativePath(project, aggregatorProject)  

where

*    project might be ../../base-parent-pom/utils-cli
and
*    aggregatorProject is 
../../../base-parent-pom/buildtools-parent-pom/buildtools-aggregator-project

The funny thing is, the original paths are correct.  The code that puts the 
paths into the menus is screwing it up.

So DefaultSiteTool is relativizing a relative path against a relative path, and 
I think that is where the problem lies.  I am looking for a good solution to 
this problem, but I will be the first to admit that I don't understand all 
ramifications of code changes here.

--------------------------------------------------------------------------------

UPDATE:

I commented out all the references to outputRelativePath in 
SiteStageMojo#execute, like this.

* project.setUrl( /*outputRelativePath +*/ "/" + structureProject );

This makes all the project URLs semi-absolute. 

Now it all seems to work.  I am not sure if this is the best fix, but what's 
released right now is definitely broken.
  
> Incorrect URLs in multi-module project
> --------------------------------------
>
>                 Key: MSITE-409
>                 URL: http://jira.codehaus.org/browse/MSITE-409
>             Project: Maven 2.x Site Plugin
>          Issue Type: Bug
>          Components: multi module
>    Affects Versions: 2.0
>            Reporter: Benson Margulies
>
> I have a top-level pom and some modules. One of the modules serves as a 
> parent for most, but not all, of the rest.
> Thus, for most, the parent is ../parent, and for that the parent is the 
> top-level project itself.
>  I ran:
> mvn site:stage -DstagingDirectory=/Users/benson/stage
> It takes a very long time.
> All of my child links came out incorrectly: e.g:
> <a 
> href="../../Users/benson/x/trunk/greenhouse/etrog/../../../../hudson.basistech.net/home/projects/etrog">RLPJ
>  Buildtools</a>
> There aren't distinct subdirectories in the staged dir for those of my 
> modules that use the parent. Actually, now that I look, I see that the ones 
> that parent into ../parent are subdirectories of 'parent' instead of 
> subdirectories of the top-level. But the links are still all wrong.

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

        

Reply via email to