Re: Site plugin in maven 3.
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.
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.
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.
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.
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.
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