[ http://jira.codehaus.org/browse/MSITE-129?page=comments#action_84679 ] 
            
Jason Melnick commented on MSITE-129:
-------------------------------------

IMHO a "module" doesn't necessarily mean "child", nor should it... Project 
aggregation via the reactor is just that - aggregation and shouldn't have any 
bearing on inheritance.

This is my inheritance tree:

Enterprise POM (xxxManagement sections)
     Enterprise Base POM (base declarations)
          Web POM
          Jar POM
          EJB POM

That hierarchy is all defined at the enterprise level. A new project that wants 
to develop under our build system needs to inherit from each of the artifact 
types. I don't want to have to create basically a dummy set of poms between the 
parent poms and the project child poms just so that a reactor project that 
builds the application can correctly generate the website. 

Since one branch of the site logic simply uses the <modules> declaration at 
face value (i.e. relative directories), it could make links based on the 
default target locations, or it could inspect the POMs contained within the 
directories of the declared modules. Moreoever, additional configuration 
options could be added to the site plugin configuration to make link creation 
locations more logical.


> modules list empty if modules don't use this project as parent in reactor 
> build
> -------------------------------------------------------------------------------
>
>                 Key: MSITE-129
>                 URL: http://jira.codehaus.org/browse/MSITE-129
>             Project: Maven 2.x Site Plugin
>          Issue Type: Bug
>    Affects Versions: 2.0-beta-5
>            Reporter: Kenney Westerhof
>         Assigned To: Kenney Westerhof
>            Priority: Minor
>             Fix For: 2.0.1
>
>
> The code in the AbstractSiteRenderingMojo does the following:
> - if it's running in a reactor build (i.e. more than 1 project in the reactor 
> projects) it scans all
> projects to see if it's parent project equals the current project. If so, 
> it's marked as a module.
> - if it's running on a single project, the project.build.modules is consulted 
> and those modules
> are marked as modules.
> I've got a 'fake' root pom, for utility purposes: it lists all projects as 
> modules so that I can easily
> built everything and generate a site. However, this fake root pom is never 
> used as a parent - there's
> a /pom/pom.xml project for that.
> The result of this is that the modules list is empty.
> A workaround is to first run 'mvn site' and then 'mvn site -N'.
> I'm not sure what the correct solution should be - basically now 2 site 
> layouts are implemented:
> - a physical layout where the modules match the <modules> section of the pom, 
> reflecting filesystem layout,
> - a project hierarchy layout based on <parent>
> and one or the other is used depending on wheter the build contains more than 
> 1 project or not.
> My first feeling is that since the tag is called ${modules} (or <menu 
> ref="modules"/>) that
> the site should use the <modules>, not the <parent>. 
> It should also take into consideration, that IF a reactor build is running, 
> it should only use the modules that are also
> in the reactor (so you can use -r -Dmaven.reactor.excludes=.. to generate a 
> site with not all projects in it).
> Thoughts?

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