maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Colebourne <scolebou...@joda.org>
Subject Re: Site plugin woes
Date Sat, 01 Jun 2013 00:36:54 GMT
v3.3 via Maven Central
Stephen

On 1 June 2013 01:30, Martin Gainty <mgainty@hotmail.com> wrote:
> Stephen
>
> which version of site-plugin are you testing?
> where did you acquire the site plugin?
>
> Martin
> --------------------
>
>
>> From: scolebourne@joda.org
>> Date: Fri, 31 May 2013 20:17:09 +0100
>> Subject: Site plugin woes
>> To: users@maven.apache.org
>>
>> It seems that the site plugin has lots of issues.
>>
>> I have a setup as follows:
>> root/pom.xml (aggregator extends parent)
>> root/projects/parent/pom.xml (parent)
>> root/projects/child/pom.xml (real code)
>>
>> AFAIK, this is a pretty standard way to setup maven, apart from the
>> extra "projects" folder.
>>
>> My parent has this config:
>>   <distributionManagement>
>>     <site>
>>       <id>og-developer-site</id>
>>       <url>http://foo.com/maven/site/${project.artifactId}/</url>
>>     </site>
>>   </distributionManagement>
>>
>> The aggregator has this config:
>>   <distributionManagement>
>>     <site>
>>       <id>og-developer-site</id>
>>       <url>http://foo.com/maven/site/</url>
>>     </site>
>>   </distributionManagement>
>>
>> The end result of runing "mvn site site:stage" in the aggregator/root
>> folder is many errors.
>>
>> Firstly, it takes forever. It needlessly runs the
>> validate/generate-sources phases of each subproject many, many times.
>>
>> Seondly, the output is calculating that the parent pom is the root of
>> the output, not the aggregator pom. This messes up the generation.
>>
>> Thirdly, the aggregator generates these sections in the index.html:
>>
>> <h5>Modules</h5>
>> <ul>
>> <li class="none">
>> <a href="og-parent/index.html" title="OG-Parent">OG-Parent</a>
>> </li>
>> <li class="none">
>> <a href="og-analytics/og-analytics/index.html"
>> title="OG-Analytics">OG-Analytics</a>
>>
>> While later on it creates:
>>
>> <tr class="b">
>> <td><a href="../index.html">OG-Parent</a></td>
>> <td>OpenGamma maven parent project</td></tr>
>> <tr class="a">
>> <td><a href="..\og-analytics/index.html">OG-Analytics</a></td>
>> <td>OpenGamma platform analytics</td></tr>
>>
>> Two DIFFERENT url relativizations in the same file!
>> The first is clearly wrong with a doubled up entry. But the second is no better.
>>
>> Finally, the site:stage manages to copy all the files one level higher
>> than they should be:
>>
>> [INFO] ------------------------------------------------------------------------
>> [INFO] Building OG-Parent 2.0.0-SNAPSHOT
>> [INFO] ------------------------------------------------------------------------
>> [INFO]
>> [INFO] --- maven-site-plugin:3.3:stage (default-cli) @ og-parent ---
>> [INFO] Using this base directory for staging: C:\dev\og\maven\OG-Platform\target
>> \staging
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Opened
>> [INFO] Pushing C:\dev\og\maven\OG-Platform\projects\OG-Parent\target\site
>> [INFO]    >>> to file://C:\dev\og\maven\OG-Platform\target\staging/./
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnecting
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnected
>> [INFO]
>> [INFO] ------------------------------------------------------------------------
>> [INFO] Building OG-Analytics 2.0.0-SNAPSHOT
>> [INFO] ------------------------------------------------------------------------
>> [INFO]
>> [INFO] --- maven-site-plugin:3.3:stage (default-cli) @ og-analytics ---
>> [INFO] Using this base directory for staging: C:\dev\og\maven\OG-Platform\target
>> \staging
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Opened
>> [INFO] Pushing C:\dev\og\maven\OG-Platform\projects\OG-Analytics\target\site
>> [INFO]    >>> to file://C:\dev\og\maven\OG-Platform\target\staging/../og-analyti
>> cs/og-analytics
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnecting
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnected
>> [INFO]
>> [INFO]
>> [INFO] ------------------------------------------------------------------------
>> [INFO] Building OG-Platform 2.0.0-SNAPSHOT
>> [INFO] ------------------------------------------------------------------------
>> [INFO]
>> [INFO] --- maven-site-plugin:3.3:stage (default-cli) @ og-platform ---
>> [INFO] Using this base directory for staging: C:\dev\og\maven\OG-Platform\target
>> \staging
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Opened
>> [INFO] Pushing C:\dev\og\maven\OG-Platform\target\site
>> [INFO]    >>> to file://C:\dev\og\maven\OG-Platform\target\staging/..
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnecting
>> file://C:\dev\og\maven\OG-Platform\target\staging/ - Session: Disconnected
>>
>> If you look, you'll see that the site:stage copied all the files
>> ALONGSIDE the staging directory, rather than within it! (With the
>> exception of the aggregator project, which this time the plugin
>> decided to put in the right place).
>>
>> At the very least, the plugin should have a sanity check to prevent
>> copying stuff outside the staging directory...
>>
>>
>> I'd also note that the documentation across different plugins sites
>> (javadoc/checkstyle/pmd/jxr/maven3upgradeNotes) is very unclear as to
>> what the recommended way to declare config for reports is. Does
>> everything go in build/plugins or pluginManagement or reporting? What
>> overrides what? Do I have to duplicate everything? How does it
>> actually work wrt multi-module builds?
>>
>> Or more bluntly - why is the guesswork the only solution to setting up
>> maven? Is it to drive consultancy?
>>
>> The site plugin is one of maven's oldest. I expected clear
>> documentation and it to "just work". Neither is true.
>> Stephen
>>
>> PS. I didn't mention the NPE caused by simply configuring the javadoc
>> plugin with links.
>>       <plugin>
>>         <groupId>org.apache.maven.plugins</groupId>
>>         <artifactId>maven-javadoc-plugin</artifactId>
>>         <version>2.9</version>
>>         <configuration>
>>           <links>
>>             <link href="http://dist.fudgemsg.org/java/javadoc/0.3/" />
>>             <link href="http://threeten.github.io/threetenbp/apidocs/" />
>>             <link href="http://joda-beans.sourceforge.net/apidocs/" />
>>             <link href="http://joda-convert.sourceforge.net/apidocs/" />
>>             <link
>> href="http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/"
>> />
>>           </links>
>>         </configuration>
>>       </plugin>
>> With the links it gets NPE in MXSerializer writing javadoc options.
>> Without the config it succeeds.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>

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


Mime
View raw message