Hi,
I've done a similar job for a previous project (an eclipse application with lot
of module (one per eclipse's plugin)) 8 months ago.
If you want I could help you.
FYI, the javadoc plugin have a usefull feature : create a "flatten" javadoc for
multi-module project, that avoid to bookmark every module's javadoc.
I also thinks that generate htmlized java files is usefull and easier (color, links) than SVN to browse the source and the test to understand how it works without the need to download the source,
create a project in our IDE,...
/david
Gerolf Seitz wrote:
martijn and i had a conversation in ##wicket about the site that could be
generated via "mvn site" (if it actually worked).
i attached the irc protocol to the end of this message.
after doing some research i came to the following conclusions:
1) there is no way to flatten the module hierarchy, so that the modules
jdk-1.x
won't be included in the site generation. even when the jdk-1.x modules are
omitted
in a separate profile, the modules won't show up as child modules of the
parent module.
2) when using the commands "mvn site" and "mvn deploy",
the generated structure is kinda weird, e.g.:
/wicket-extensions/wicket-jdk14/wicket-extensions/index.html
and even after deploying the whole project the links to other modules
somehow didn't really work.
i was lucky to find a solution for both issues, although i'm not too happy
about these either:
1) inspired by this article [0], which talks about in-memory POM
modification,
i wrote a small maven plugin (maven-flattire-plugin) that flattens the
hierarchy on-the-fly so that all
modules are direct children of the parent module (except the parent module
itself).
however, a concern with the maven-plugin might be, that it's not available
on public maven repositories,
so it takes an extra step to mvn install it first.
i don't know how easy or how hard it is to get software published on maven
repos, so that may not be a concern at all.
2) maven-site-plugin provides a goal (site:stage) for "testing the final
result" (although site and site:stage
didn't have any similarities structure wise during my tests).
by executing "mvn site:stage -DstagingDirectory=/tmp/wicket" the site is
created in that location.
unfortunately the urls
in order to use the flattire maven plugin, i created a profile "site" in the
parent-pom which includes all modules except jdk-1.x
and automatically binds flattire to a phase in the lifecycle. needless to
say that only site:site provides the phases pre-/post-site.
so i bound flattire to the clean phase, which leads to the final commandline
for creating the site:
mvn clean site:stage -Psite -DstagingDirectory=/targetDirectory
any thoughts, comments, ... ?
gerolf
[0]
http://www.eclipse.org/articles/article.php?file=Article-Eclipse-and-Maven2/index.html
##wicket protocol, Saturday 2007-09-08, started 22:03
gerolf dashorst: do we want to use mvn site to generate the wicket
website?
dashorst not the main site
dashorst but we do want to use the provided maven skin
dashorst in wicket/common/wicket-site-skin
gerolf yeah
dashorst what I want it to do is
dashorst generate the standard maven stuff, with just a small
index.aptdescribing the project
dashorst without the unit test reports
dashorst but with the javadoc
dashorst something like:
dashorst index.html
dashorst javadoc
dashorst dependencies
gerolf dpendencies probably too
dashorst license
dashorst svn repo
dashorst jira
dashorst but that is about it
gerolf what about modules?
dashorst the idea is to make it one big website
dashorst with each module a sub directory of the parent
dashorst or just all modules as children of the parent (flattened
out)
dashorst so we get:
dashorst http://wicket.apache.org/wicket-1.3/wicket
dashorst http://wicket.apache.org/wicket-1.3/wicket-extensions
dashorst http://wicket.apache.org/wicket-1.3/wicket-ioc
dashorst http://wicket.apache.org/wicket-1.3/wicket-spring
dashorst http://wicket.apache.org/wicket-1.3/wicket-guice
gerolf so i guess jdk-1.4 /5 should be omitted?
dashorst and a http://wicket.apache.org/wicket-1.3/index.html
dashorst yeah
dashorst it would be nice to have that site included in the release
zip
dashorst in a directory docs/