[ 
https://jira.codehaus.org/browse/MSITE-669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=315861#comment-315861
 ] 

Lennart Jörelid edited comment on MSITE-669 at 12/18/12 1:51 AM:
-----------------------------------------------------------------

I attached images to clarify two things:

# The reactor build structure (module definitions). This is how I believe the 
navigation within the site:stage should work (and - until recently - the way I 
believed it *did* work).
#* Illustrated in image _nazgul_tools_reactor_structure_
#* White pom-type reactor projects only define modules and sites, thereby 
glueing together the build reactor. Such projects do not produce anything worth 
deploying - other than potential documentation which should be part of the 
{{site:stage}}.
#* Yellow jar/bundle-type projects define a single deployable artifact, as well 
as documentation in the form of a maven site. These project artifacts would be 
deployed to a repo in a normal manner as well as part of a compound/staged site.
# The project dependencies including inclusions. 
#* Illustrated by image _nazgul_tools_project_dependencies_. [Please remove the 
earlier/incorrect of the two versions, as I cannot due to lacking privileges].
#* The reactor structure/projects briefly explained (to alleviate any 
confusion):
#*# *Codestyle* := contains rules for checkstyle, enforcer, PMD etc. This is 
essentially the implementation of the developer guidelines.
#*# *Tools-parent* := defines the build reactor, including dependency 
management settings. The plugins use configuration/rules from the codestyle 
project, implying that the tools-parent project include codestyle as a 
dependency. Therefore, tools-parent is built after codestyle.
#*# *Validation-api* := defines the API of a globally available aspect. It 
defines the tools-parent as parent project, to use the build cycle/codestyle 
rules defined within tools-parent.
#*# *Validation-aspect* := defines the globally available aspect 
implementation, depending on the validation-api and using the tools-parent as 
parent project (to use the build cycle/codestyle rules defined within 
tools-parent).
#*# *Parent* := configures AspectJ to use the aspect implementation from 
validation-aspect. This makes the validation-aspect globally available to all 
projects using the parent project as ... well ... parent. 

Comments and thoughts on the above:

# It seems too invasive to require parent poms (i.e. tools-parent, parent) to 
define modules just to acquire a staged site with working navigation. These 
projects *should* be leaves, because they may be used as parents by poms 
outside of the nazgul_tools reactor.
# It is practical to make all of the projects illustrated above be part of a 
single reactor, since they are released as a unit - and should be documented as 
a unit. I suggest that the {{site:stage}} should support this scenario.
# The structure I would expect from the {{site:stage}} command for the 
nazgul_tools reactor, would match the reactor closely in terms of 
links/navigation. The desired/expected structure of the 
{{site:stage}}-generated site is identical to the one illustrated in the image 
_nazgul_tools_reactor_structure_ above.
                
      was (Author: l...@jguru.se):
    I attached two images to clarify

# The reactor build structure (module definitions). This is how I believe the 
navigation within the site:stage should work (and - until recently - the way I 
believed it *did* work).
#* Illustrated in image _nazgul_tools_reactor_structure_
#* White pom-type reactor projects only define modules and sites, thereby 
glueing together the build reactor. Such projects do not produce anything worth 
deploying - other than potential documentation which should be part of the 
{{site:stage}}.
#* Yellow jar/bundle-type projects define a single deployable artifact, as well 
as documentation in the form of a maven site. These project artifacts would be 
deployed to a repo in a normal manner as well as part of a compound/staged site.
# The project dependencies including inclusions. 
#* Illustrated by image _nazgul_tools_project_dependencies_. [Please remove the 
earlier/incorrect of the two versions, as I cannot due to lacking privileges].
#* The reactor structure/projects briefly explained (to alleviate any 
confusion):
#*# *Codestyle* := contains rules for checkstyle, enforcer, PMD etc. This is 
essentially the implementation of the developer guidelines.
#*# *Tools-parent* := defines the build reactor, including dependency 
management settings. The plugins use configuration/rules from the codestyle 
project, implying that the tools-parent project include codestyle as a 
dependency. Therefore, tools-parent is built after codestyle.
#*# *Validation-api* := defines the API of a globally available aspect. It 
defines the tools-parent as parent project, to use the build cycle/codestyle 
rules defined within tools-parent.
#*# *Validation-aspect* := defines the globally available aspect 
implementation, depending on the validation-api and using the tools-parent as 
parent project (to use the build cycle/codestyle rules defined within 
tools-parent).
#*# *Parent* := configures AspectJ to use the aspect implementation from 
validation-aspect. This makes the validation-aspect globally available to all 
projects using the parent project as ... well ... parent. 

Comments:

# It seems too invasive to require parent poms (i.e. tools-parent, parent) to 
define modules just to acquire a staged site with working navigation. These 
projects *should* be leaves, because they may be used as parents by poms 
outside of the nazgul_tools reactor.
# It is practical to make all of the projects illustrated above be part of a 
single reactor, since they are released as a unit - and should be documented as 
a unit. I suggest that the {{site:stage}} should support this scenario.
# The structure I would expect from the {{site:stage}} command for the 
nazgul_tools reactor, would match the reactor closely in terms of 
links/navigation. The desired/expected structure of the 
{{site:stage}}-generated site is identical to the one illustrated in the image 
_nazgul_tools_reactor_structure_ above.
                  
> site:stage creates incorrect structure when module paths contains sets of 
> "../"
> -------------------------------------------------------------------------------
>
>                 Key: MSITE-669
>                 URL: https://jira.codehaus.org/browse/MSITE-669
>             Project: Maven 2.x and 3.x Site Plugin
>          Issue Type: Bug
>          Components: multi module, relative links, site:stage(-deploy)
>    Affects Versions: 3.1, 3.2
>            Reporter: Lennart Jörelid
>            Assignee: Lukas Theussl
>         Attachments: nazgul_tools_project_dependencies.png, 
> nazgul_tools_project_dependencies.png, nazgul_tools_reactor_structure.png, 
> sample.zip
>
>
> Given the module definitions given below, the site:stage goal produces sets 
> of maps relative to the staging directory - i.e. outside of the target 
> directory.
> {code:xml} 
> <modules>
>   <module>../../validation/validation-api</module>
>   <module>../../validation/validation-aspect</module>
>   <module>../parent</module>
> </modules>
> {code}
> The staged site should be fully included within the staging directory. It 
> would appear that relativization of links for site:stage should take special 
> links into consideration.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to