Re: Site plugin in maven 3.

2011-09-08 Thread Lukas Theussl


Hi,

See comments in-line...


Michael Haefele wrote:

The question on using site with aggregated projects got me to trying out the
maven 3 version of the site plugin..

Thought I'd post a little list of the steps required and a report card.

My use case is I want to generate a site in some directory in a nightly CI
build for an aggregated project.

I don't really care what the site looks like beyond maybe adding any
reporting plugins that sound interesting.
I certainly don't want to deploy it anywhere as it's already
web accessible as an artifact of the nightly build (this has the added
benefit of being able to compare Tuesday's site with Wednesday's site).
Basically i want to run the plugin and use whatever the default output
is

In Maven 2, this use case didn't fare very well (specifically this use case.
  If this is an outlandish use case, that's fine).
Basically I jumped through 4 or 5 flaming hoops and gave up (again, it's a
nice to have, but not part of core business in any way, so the last 3 hoops
were more out of stubbornness than a good use of my time).

So hopefully Maven 3 would be a little more forgiving.


Apart from some issues with reporting plugins [1] it shouldn't matter 
whether you run it with maven 2 or 3, it's rather a question of which 
version of the site-plugin you're using. Version 3 of the site plugin is 
compatible with maven 2 and 3.



[1] http://maven.apache.org/plugins/maven-site-plugin/maven-3.html




To get started, I followed the link sent in the other post.  (
http://maven.apache.org/**plugins/maven-site-plugin/faq.**
html#Why_dont_the_links_**between_parent_and_child_**
modules_work_when_I_run_mvn_**sitehttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_dont_the_links_between_parent_and_child_modules_work_when_I_run_mvn_site
)

I need to use site:stage, but this requires the site to be generated...

So...
mvn clean site:site  mvn site:stage  (mvn clean site:site site:stage does
not work well I discovered)


why not?


Yields:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-site-plugin:3.0:stage (default-cli) on
project pep-parent-dep-mgmt: Missing site information in the distribution
management of the project pep-parent-dep-mgmt
(com.pep:pep-parent-dep-mgmt:3.10-SNAPSHOT) -  [Help 1]

So I'll count this as Hoop #1.  Why does maven need this information (as in,
why can't maven leave this blank or put in a fix-me value)?


site:stage is just a local preview of site:deploy for which this 
information is needed. In particular relative links between modules are 
constructed using this information. There were lots of problems with 
this in older versions of the plugin, see [2] and linked issues. So even 
though in your particular case the distMngmt.site info is not directly 
needed, it is necessary to ensure that that the staged site is exactly 
the same as the deployed site.


[2] http://jira.codehaus.org/browse/MSITE-533



I tried adding
distributionManagement

 site
   idwww.yourcompany.com/id
   urlscp://www.yourcompany.com/www/docs/project//url
 /site
   /distributionManagement

, straight out of
http://maven.apache.org/plugins/maven-site-plugin/usage.html#Deploying_a_Site
(even
though i'm not actually deploying).
But this eventually causes some weird directory names in the site links
(they include the scp://), so I took that out and just used
url/


that doesn't sound right, do you have a test case?



This one actually deployed everything except the grandparent module  (we
have a grandparent, a parent which has grandparent as parent, and an
aggregating project, which does not have the parent or grandparent as a
parent) to target/staging/../../../../ (which turned out to be just above my
~ directory).  I don't know where all the ../../../ came from (maybe the
relativePath  in theparent  tag?).



I can only guess but I assume that you have a complicated project 
structure, maybe with non-default directory layout? Did you read [3], 
especially the 'Note' under 'Staging and deploying'? Otherwise please 
provide a simple test project.



[3] 
http://maven.apache.org/plugins/maven-site-plugin/examples/multimodule.html




I finally goldilocked on
urlmysite/url

Which doesn't really make any sense, but seems to do the least crazy to the
staging directory structure..
I added this to the aggregating project and the grandparent project

mvn clean site:site  mvn site:stage

This now works except the grandparent project doesn't seem to have it's own
directory (clicking on the module link takes you to the staging directory)..
  But certainly good enough for my purposes..

In summary, I'd probably give the 3.0 site plugin a B- for this use case,
which is a HUGE improvement over maven 2.

My main issue is with configuring thesite  tag, which seems like
an unnecessary step if site:stage doesn't need it (especially since getting
it wrong can do odd things to where the files are staged).
It would be great if this defaulted

Re: Site plugin in maven 3.

2011-09-08 Thread Michael Haefele
Third time trying to send this... I keep getting spam blocked.

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the recipient
domain. We recommend contacting the other email provider for further
information about the cause of this error. The error that the other server
returned was: 552 552 spam score (5.3) exceeded threshold
(HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL,URI_OBFU_WWW (state 18).


The long and the short of it is I need to come up with a set of test
projects to verify what I am seeing.

If I'm reading this right, there are a few expected behaviors..
1.  mvn site:site site:stage should work.
2.  The distributionManagementsiteurl is important.
*  It can be in the form of file://mysite/ or scp://mysite/
*  It will be inherited by child modules (as in hierarchy, not
aggregator/directory children) and appended with that child artifactId.
** This will not work if the module directory does not match the artifactId.
3.  Does the projecturl tag matter?

What I would like to do is add
site
idanId/id
urlscp://mysite//url
/site
to my corporate pom and have that be inherited down to the children,
grandchildren, etc nodes..

So, for example, if I have a hierarchy
corp-my-grandparent-my-parent-my-module
and an aggregator root module
corp-my-aggregator which aggregates my-grandparent, my-parent and my-module

my-aggregator/
my-aggregator/my-grandparent
my-aggregator/my-parent
my-aggregator/my-module

If only corp has a url defined,
I would expect the my-module url to be
scp://mysite/my-grandparent/my-parent/my-module/ ?
And the following structure for my-aggregator/staging ?
target/staging/corp/my-aggregator
target/staging/corp/my-grandparent
target/staging/corp/my-grandparent/my-parent
target/staging/corp/my-grandparent/my-parent/my-grandparent

And all the links properly navigate this structure.

I've got a bit of vacation coming up, but after that I will try to come up
with some simple test projects to confirm what I am seeing on our main
project (or perhaps expose that I'm doing something non-maveny that i can
fix).

Thanks!
Mike


Re: Site plugin in maven 3.

2011-09-08 Thread Lukas Theussl



Michael Haefele wrote:

Third time trying to send this... I keep getting spam blocked.

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the recipient
domain. We recommend contacting the other email provider for further
information about the cause of this error. The error that the other server
returned was: 552 552 spam score (5.3) exceeded threshold
(HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL,URI_OBFU_WWW (state 18).


The long and the short of it is I need to come up with a set of test
projects to verify what I am seeing.

If I'm reading this right, there are a few expected behaviors..
1.  mvn site:site site:stage should work.


It should work up to 
http://maven.apache.org/plugins/maven-site-plugin/faq.html#What_is_the_difference_between_mvn_site_and_mvn_site:site



2.  ThedistributionManagementsiteurl  is important.


Only in a multi-module build and/or if you want to stage/deploy your site.


*  It can be in the form of file://mysite/ or scp://mysite/


it should be a valid URL (and to make sense it should be an absolute 
URL, even though in practice a relative one will probably work too, as 
in the example you have shown in your previous email).



*  It will be inherited by child modules (as in hierarchy, not
aggregator/directory children) and appended with that child artifactId.


yes, unless you explicitly override it in the inheriting child. However, 
note http://jira.codehaus.org/browse/MSITE-600 which I still haven't 
managed to fix in a satisfactory manner.



** This will not work if the module directory does not match the artifactId.
3.  Does theprojecturl  tag matter?


See
http://maven.apache.org/plugins/maven-site-plugin/faq.html#Use_of_url
http://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_do_my_absolute_links_get_translated_into_relative_links




What I would like to do is add
site
 idanId/id
 urlscp://mysite//url
/site
to my corporate pom and have that be inherited down to the children,
grandchildren, etc nodes..

So, for example, if I have a hierarchy
corp-my-grandparent-my-parent-my-module
and an aggregator root module
corp-my-aggregator which aggregates my-grandparent, my-parent and my-module

my-aggregator/
my-aggregator/my-grandparent
my-aggregator/my-parent
my-aggregator/my-module

If only corp has a url defined,
I would expect the my-module url to be
scp://mysite/my-grandparent/my-parent/my-module/ ?


yes


And the following structure for my-aggregator/staging ?
target/staging/corp/my-aggregator
target/staging/corp/my-grandparent
target/staging/corp/my-grandparent/my-parent
target/staging/corp/my-grandparent/my-parent/my-grandparent


yes



And all the links properly navigate this structure.


hopefully ;)


Cheers,
-Lukas




I've got a bit of vacation coming up, but after that I will try to come up
with some simple test projects to confirm what I am seeing on our main
project (or perhaps expose that I'm doing something non-maveny that i can
fix).

Thanks!
Mike



-
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org



Re: Site plugin in maven 3.

2011-09-08 Thread Michael Haefele
Ah!

http://jira.codehaus.org/**browse/MSITE-600http://jira.codehaus.org/browse/MSITE-600
http://maven.apache.org/**plugins/maven-site-plugin/faq.**html#Use_of_urlhttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Use_of_url
http://maven.apache.org/**plugins/maven-site-plugin/faq.**
html#Why_do_my_absolute_links_**get_translated_into_relative_**linkshttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_do_my_absolute_links_get_translated_into_relative_links

All sound like potential causes of what I am seeing.  That will be the first
thing I check when I get back.

One more question possibly in relation to http://jira.codehaus.org/**
browse/MSITE-600 http://jira.codehaus.org/browse/MSITE-600.

In a few of the cases I tried, I'd end up with site:stage attempting to
place files in target/staging/../../mysite/morestuff (ie. in the base
directory of my aggregator) or even farther up the directory tree..

How would you feel about having site:stage verify all the staging files
actually went into the staging directory and erroring out otherwise?

Having maven place files in non-target directories makes me really nervous
(even if my configuration might be to blame).

Thanks for all the help!
Mike

On Thu, Sep 8, 2011 at 12:29 PM, Lukas Theussl ltheu...@apache.org wrote:



 Michael Haefele wrote:

 Third time trying to send this... I keep getting spam blocked.

 Technical details of permanent failure:
 Google tried to deliver your message, but it was rejected by the recipient
 domain. We recommend contacting the other email provider for further
 information about the cause of this error. The error that the other server
 returned was: 552 552 spam score (5.3) exceeded threshold
 (HTML_MESSAGE,RCVD_IN_DNSWL_**LOW,SPF_NEUTRAL,URI_OBFU_WWW (state 18).


 The long and the short of it is I need to come up with a set of test
 projects to verify what I am seeing.

 If I'm reading this right, there are a few expected behaviors..
 1.  mvn site:site site:stage should work.


 It should work up to http://maven.apache.org/**
 plugins/maven-site-plugin/faq.**html#What_is_the_difference_**
 between_mvn_site_and_mvn_site:**sitehttp://maven.apache.org/plugins/maven-site-plugin/faq.html#What_is_the_difference_between_mvn_site_and_mvn_site:site


  2.  ThedistributionManagement**siteurl  is important.


 Only in a multi-module build and/or if you want to stage/deploy your site.


  *  It can be in the form of file://mysite/ or scp://mysite/


 it should be a valid URL (and to make sense it should be an absolute URL,
 even though in practice a relative one will probably work too, as in the
 example you have shown in your previous email).


  *  It will be inherited by child modules (as in hierarchy, not
 aggregator/directory children) and appended with that child artifactId.


 yes, unless you explicitly override it in the inheriting child. However,
 note 
 http://jira.codehaus.org/**browse/MSITE-600http://jira.codehaus.org/browse/MSITE-600which
  I still haven't managed to fix in a satisfactory manner.


  ** This will not work if the module directory does not match the
 artifactId.
 3.  Does theprojecturl  tag matter?


 See
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**html#Use_of_urlhttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Use_of_url
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**
 html#Why_do_my_absolute_links_**get_translated_into_relative_**linkshttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_do_my_absolute_links_get_translated_into_relative_links




 What I would like to do is add
 site
 idanId/id
 urlscp://mysite//url
 /site
 to my corporate pom and have that be inherited down to the children,
 grandchildren, etc nodes..

 So, for example, if I have a hierarchy
 corp-my-grandparent-my-**parent-my-module
 and an aggregator root module
 corp-my-aggregator which aggregates my-grandparent, my-parent and
 my-module

 my-aggregator/
 my-aggregator/my-grandparent
 my-aggregator/my-parent
 my-aggregator/my-module

 If only corp has a url defined,
 I would expect the my-module url to be
 scp://mysite/my-grandparent/**my-parent/my-module/ ?


 yes


  And the following structure for my-aggregator/staging ?
 target/staging/corp/my-**aggregator
 target/staging/corp/my-**grandparent
 target/staging/corp/my-**grandparent/my-parent
 target/staging/corp/my-**grandparent/my-parent/my-**grandparent


 yes



 And all the links properly navigate this structure.


 hopefully ;)


 Cheers,
 -Lukas




 I've got a bit of vacation coming up, but after that I will try to come up
 with some simple test projects to confirm what I am seeing on our main
 project (or perhaps expose that I'm doing something non-maveny that i can
 fix).

 Thanks!
 Mike


 --**--**-
 To unsubscribe, e-mail: 
 users-unsubscribe@maven.**apache.orgusers-unsubscr...@maven.apache.org
 For additional commands, e-mail: 

Re: Site plugin in maven 3.

2011-09-08 Thread Michael Haefele
One more followup.

It does look like the source of at least some of my problems was the
projecturl tag.

We had a few poms that had been cut/pasted and had identical url's.
Once I commented all of those out, everything looks like it is in the right
place and it looks like all the links work so far.

Thanks for your help.

Mike

On Thu, Sep 8, 2011 at 12:52 PM, Michael Haefele 
michael.haef...@parityenergy.com wrote:

 Ah!

 http://jira.codehaus.org/**browse/MSITE-600http://jira.codehaus.org/browse/MSITE-600
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**html#Use_of_urlhttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Use_of_url
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**
 html#Why_do_my_absolute_links_**get_translated_into_relative_**linkshttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_do_my_absolute_links_get_translated_into_relative_links

 All sound like potential causes of what I am seeing.  That will be the
 first thing I check when I get back.

 One more question possibly in relation to http://jira.codehaus.org/**
 browse/MSITE-600 http://jira.codehaus.org/browse/MSITE-600.

 In a few of the cases I tried, I'd end up with site:stage attempting to
 place files in target/staging/../../mysite/morestuff (ie. in the base
 directory of my aggregator) or even farther up the directory tree..

 How would you feel about having site:stage verify all the staging files
 actually went into the staging directory and erroring out otherwise?

 Having maven place files in non-target directories makes me really nervous
 (even if my configuration might be to blame).

 Thanks for all the help!
 Mike

 On Thu, Sep 8, 2011 at 12:29 PM, Lukas Theussl ltheu...@apache.orgwrote:



 Michael Haefele wrote:

 Third time trying to send this... I keep getting spam blocked.

 Technical details of permanent failure:
 Google tried to deliver your message, but it was rejected by the
 recipient
 domain. We recommend contacting the other email provider for further
 information about the cause of this error. The error that the other
 server
 returned was: 552 552 spam score (5.3) exceeded threshold
 (HTML_MESSAGE,RCVD_IN_DNSWL_**LOW,SPF_NEUTRAL,URI_OBFU_WWW (state 18).


 The long and the short of it is I need to come up with a set of test
 projects to verify what I am seeing.

 If I'm reading this right, there are a few expected behaviors..
 1.  mvn site:site site:stage should work.


 It should work up to http://maven.apache.org/**
 plugins/maven-site-plugin/faq.**html#What_is_the_difference_**
 between_mvn_site_and_mvn_site:**sitehttp://maven.apache.org/plugins/maven-site-plugin/faq.html#What_is_the_difference_between_mvn_site_and_mvn_site:site


  2.  ThedistributionManagement**siteurl  is important.


 Only in a multi-module build and/or if you want to stage/deploy your site.


  *  It can be in the form of file://mysite/ or scp://mysite/


 it should be a valid URL (and to make sense it should be an absolute URL,
 even though in practice a relative one will probably work too, as in the
 example you have shown in your previous email).


  *  It will be inherited by child modules (as in hierarchy, not
 aggregator/directory children) and appended with that child artifactId.


 yes, unless you explicitly override it in the inheriting child. However,
 note 
 http://jira.codehaus.org/**browse/MSITE-600http://jira.codehaus.org/browse/MSITE-600which
  I still haven't managed to fix in a satisfactory manner.


  ** This will not work if the module directory does not match the
 artifactId.
 3.  Does theprojecturl  tag matter?


 See
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**html#Use_of_urlhttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Use_of_url
 http://maven.apache.org/**plugins/maven-site-plugin/faq.**
 html#Why_do_my_absolute_links_**get_translated_into_relative_**linkshttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_do_my_absolute_links_get_translated_into_relative_links




 What I would like to do is add
 site
 idanId/id
 urlscp://mysite//url
 /site
 to my corporate pom and have that be inherited down to the children,
 grandchildren, etc nodes..

 So, for example, if I have a hierarchy
 corp-my-grandparent-my-**parent-my-module
 and an aggregator root module
 corp-my-aggregator which aggregates my-grandparent, my-parent and
 my-module

 my-aggregator/
 my-aggregator/my-grandparent
 my-aggregator/my-parent
 my-aggregator/my-module

 If only corp has a url defined,
 I would expect the my-module url to be
 scp://mysite/my-grandparent/**my-parent/my-module/ ?


 yes


  And the following structure for my-aggregator/staging ?
 target/staging/corp/my-**aggregator
 target/staging/corp/my-**grandparent
 target/staging/corp/my-**grandparent/my-parent
 target/staging/corp/my-**grandparent/my-parent/my-**grandparent


 yes



 And all the links properly navigate this structure.


 hopefully ;)


 Cheers,
 -Lukas




 I've got a bit of 

Site plugin in maven 3.

2011-09-07 Thread Michael Haefele
The question on using site with aggregated projects got me to trying out the
maven 3 version of the site plugin..

Thought I'd post a little list of the steps required and a report card.

My use case is I want to generate a site in some directory in a nightly CI
build for an aggregated project.

I don't really care what the site looks like beyond maybe adding any
reporting plugins that sound interesting.
I certainly don't want to deploy it anywhere as it's already
web accessible as an artifact of the nightly build (this has the added
benefit of being able to compare Tuesday's site with Wednesday's site).
Basically i want to run the plugin and use whatever the default output
is

In Maven 2, this use case didn't fare very well (specifically this use case.
 If this is an outlandish use case, that's fine).
Basically I jumped through 4 or 5 flaming hoops and gave up (again, it's a
nice to have, but not part of core business in any way, so the last 3 hoops
were more out of stubbornness than a good use of my time).

So hopefully Maven 3 would be a little more forgiving.

To get started, I followed the link sent in the other post.  (
http://maven.apache.org/**plugins/maven-site-plugin/faq.**
html#Why_dont_the_links_**between_parent_and_child_**
modules_work_when_I_run_mvn_**sitehttp://maven.apache.org/plugins/maven-site-plugin/faq.html#Why_dont_the_links_between_parent_and_child_modules_work_when_I_run_mvn_site
)

I need to use site:stage, but this requires the site to be generated...

So...
mvn clean site:site  mvn site:stage  (mvn clean site:site site:stage does
not work well I discovered)
Yields:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-site-plugin:3.0:stage (default-cli) on
project pep-parent-dep-mgmt: Missing site information in the distribution
management of the project pep-parent-dep-mgmt
(com.pep:pep-parent-dep-mgmt:3.10-SNAPSHOT) - [Help 1]

So I'll count this as Hoop #1.  Why does maven need this information (as in,
why can't maven leave this blank or put in a fix-me value)?

I tried adding
distributionManagement

site
  idwww.yourcompany.com/id
  urlscp://www.yourcompany.com/www/docs/project//url
/site
  /distributionManagement

, straight out of
http://maven.apache.org/plugins/maven-site-plugin/usage.html#Deploying_a_Site
(even
though i'm not actually deploying).
But this eventually causes some weird directory names in the site links
(they include the scp://), so I took that out and just used
url/

This one actually deployed everything except the grandparent module  (we
have a grandparent, a parent which has grandparent as parent, and an
aggregating project, which does not have the parent or grandparent as a
parent) to target/staging/../../../../ (which turned out to be just above my
~ directory).  I don't know where all the ../../../ came from (maybe the
relativePath in the parent tag?).

I finally goldilocked on
urlmysite/url

Which doesn't really make any sense, but seems to do the least crazy to the
staging directory structure..
I added this to the aggregating project and the grandparent project

mvn clean site:site  mvn site:stage

This now works except the grandparent project doesn't seem to have it's own
directory (clicking on the module link takes you to the staging directory)..
 But certainly good enough for my purposes..

In summary, I'd probably give the 3.0 site plugin a B- for this use case,
which is a HUGE improvement over maven 2.

My main issue is with configuring the site tag, which seems like
an unnecessary step if site:stage doesn't need it (especially since getting
it wrong can do odd things to where the files are staged).
It would be great if this defaulted to some safe value.

or if someone could suggest some safe value, that would be awesome.
It looks like if I use file:// or scp:// as suggested by
http://maven.apache.org/plugins/maven-site-plugin/usage.html#Deploying_a_Site
it
starts doing really strange things with the directories.

Again, it just feels like one should be able to run mvn site:stage and get a
meaningful result where all the links make sense...
No?

Thanks,
Mike