michal 2003/07/28 12:56:49 Modified: src/plugins-build/multiproject/src/plugin-resources/templates navigation-aggregate.xml navigation-independent.xml projects-overview.xml src/plugins-build/multiproject plugin.jelly plugin.properties Log: Improved "overview" page Revision Changes Path 1.4 +1 -1 maven/src/plugins-build/multiproject/src/plugin-resources/templates/navigation-aggregate.xml Index: navigation-aggregate.xml =================================================================== RCS file: /home/cvs/maven/src/plugins-build/multiproject/src/plugin-resources/templates/navigation-aggregate.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- navigation-aggregate.xml 27 Jul 2003 21:48:41 -0000 1.3 +++ navigation-aggregate.xml 28 Jul 2003 19:56:48 -0000 1.4 @@ -7,7 +7,7 @@ <body> <menu name="Projects"> #if ($createOverviewPage == "true" ) - <item name="Overview" href="projects-overview.xml"/> + <item name="${overviewPageLinkTitle}" href="${overviewPageLink}.html"/> #end #foreach ($reactorProject in $reactorProjects) <item name="$reactorProject.name" href="/${aggregateDir}${reactorProject.artifactId}/index.html"/> 1.3 +1 -1 maven/src/plugins-build/multiproject/src/plugin-resources/templates/navigation-independent.xml Index: navigation-independent.xml =================================================================== RCS file: /home/cvs/maven/src/plugins-build/multiproject/src/plugin-resources/templates/navigation-independent.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- navigation-independent.xml 27 Jul 2003 21:48:41 -0000 1.2 +++ navigation-independent.xml 28 Jul 2003 19:56:48 -0000 1.3 @@ -7,7 +7,7 @@ <body> <menu name="Projects"> #if ($createOverviewPage == "true" ) - <item name="Overview" href="projects-overview.xml"/> + <item name="${overviewPageLinkTitle}" href="{$overviewPageLink}.html"/> #end #foreach ($reactorProject in $reactorProjects) <item name="$reactorProject.name" href="${reactorProject.url}"/> 1.2 +36 -9 maven/src/plugins-build/multiproject/src/plugin-resources/templates/projects-overview.xml Index: projects-overview.xml =================================================================== RCS file: /home/cvs/maven/src/plugins-build/multiproject/src/plugin-resources/templates/projects-overview.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- projects-overview.xml 27 Jul 2003 21:48:41 -0000 1.1 +++ projects-overview.xml 28 Jul 2003 19:56:48 -0000 1.2 @@ -1,16 +1,43 @@ <?xml version="1.0"?> <document> <properties> - <title>Overview of projects</title> + <title>$overviewPageTitle</title> <author email="[EMAIL PROTECTED]">Michal Maczka</author> </properties> <body> - #foreach ($reactorProject in $reactorProjects) - <section name="$reactorProject.name"> - <p> - ${reactorProject.description} - </p> - </section> - #end + <section name="$overviewPageTitle"> + <p> + #if ($overviewPageText && $overviewPageText.lenght>0) + ${overviewPageText} + <br/> + #end + <table> + #foreach ($project in $reactorProjects) + <tr> + <th><a href="#${project.name}">${project.name}</a></th> + <td>${project.shortDescription}</td> + </tr> + #end + </table> + </p> + <p> + #foreach ($project in $reactorProjects) + <subsection name="$project.name"> + <p> + ${project.description} + </p> + <p> + <b>Website:</b> + #if ($navType == "aggregate") + <a href="/${aggregateDir}${project.artifactId}/index.html">${project.name}</a> + #else + <a href="${project.url}">${project.url}</a> + #end + </p> + </subsection> + #end + </p> + </section> </body> -</document> \ No newline at end of file +</document> + 1.21 +95 -60 maven/src/plugins-build/multiproject/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/maven/src/plugins-build/multiproject/plugin.jelly,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- plugin.jelly 27 Jul 2003 21:48:41 -0000 1.20 +++ plugin.jelly 28 Jul 2003 19:56:49 -0000 1.21 @@ -22,17 +22,46 @@ prereqs="multiproject:site"> </goal> + + <!--======================================================================--> + <!-- Runs reactor and puts variable "reactorProjects" into jelly contex --> + <!-- This allows to share the work done by reactor in goals --> + <!-- which just need the list of project but don't need to run any goal --> + <!--======================================================================--> + <goal name="multiproject:site-init"> + + <!-- FIXME: This can't use multiproject:goal as it throws away the projects --> + <!-- generate site docs --> + <maven:reactor + basedir="${maven.multiproject.basedir}" + banner="Generating site for " + includes="${maven.multiproject.includes}" + excludes="${maven.multiproject.excludes}" + postProcessing="true" + ignoreFailures="${maven.multiproject.ignoreFailures}" + /> + + <mkdir dir="${maven.gen.docs}"/> + + <j:set var="aggregateDir" value="${maven.multiproject.aggregateDir}"/> + <j:set var="navType" value="${maven.multiproject.navigation}"/> + <j:set var="overviewPageCreate" value="${maven.multiproject.overviewPage.create}"/> + <j:set var="overviewPageTitle" value="${maven.multiproject.overviewPage.title}"/> + <j:set var="overviewPageLink" value="${maven.multiproject.overviewPage.link}"/> + <j:set var="overviewPageLinkTitle" value="${maven.multiproject.overviewPage.linkTitle}"/> + <j:set var="overviewPageText" value="${maven.multiproject.overviewPage.text}"/> + </goal> + + <!--==================================================================--> <!-- Builds sites for all subprojects --> <!--==================================================================--> - <goal name="multiproject:site" - description="Run the site goal of all subprojects"> + <goal name="multiproject:site" + description="Run the site goal of all subprojects"> <attainGoal name="multiproject:create-nav"/> <attainGoal name="multiproject:create-overview-page"/> - - <!-- FIXME: This can't use multiproject:goal as it throws away the projects --> - <!-- generate site docs --> + <maven:reactor basedir="${maven.multiproject.basedir}" banner="Generating site for " @@ -71,31 +100,17 @@ <!--==================================================================--> <!-- Generate HTML files for navigation bar across projects. --> <!--==================================================================--> - <goal name="multiproject:create-nav"> - <mkdir dir="${maven.gen.docs}"/> - - <!-- FIXME: 2) Needs to be a tag - | get all projects for template processing - | --> - <maven:reactor - basedir="${maven.multiproject.basedir}" - banner="Getting projects for navigation" - includes="${maven.multiproject.includes}" - excludes="${maven.multiproject.excludes}" - postProcessing="true" - ignoreFailures="true" - /> - + <goal name="multiproject:create-nav" + prereqs="multiproject:site-init"> + + <j:forEach var="reactorProject" items="${reactorProjects}"> <j:if test="${reactorProject.id == pom.id}"> <fail message="You must exclude ${pom.id} (the top level project) from the subproject set"/> </j:if> </j:forEach> - <!-- generate navbar for project based on aggregate or independent --> - <j:set var="aggregateDir" value="${maven.multiproject.aggregateDir}"/> - <j:set var="navType" value="${maven.multiproject.navigation}"/> - <j:set var="createOverviewPage" value="${maven.multiproject.overviewPage}"/> + <!-- generate navbar for project based on aggregate or independent --> <j:if test="${navType != ''}"> <echo>Producing ${navType} navigation...</echo> <velocity:merge @@ -126,32 +141,26 @@ <!--==================================================================--> <!-- Generate Overview of all projects --> <!--==================================================================--> - <goal name="multiproject:create-overview-page"> + <goal name="multiproject:create-overview-page" + prereqs="multiproject:site-init"> - <mkdir dir="${maven.gen.docs}"/> + - <j:set var="createOverviewPage" value="${maven.multiproject.overviewPage}"/> - <j:if test="${createOverviewPage=='true'}"> - - <!-- FIXME: 2) Needs to be a tag - | get all projects for template processing - | --> - <maven:reactor - basedir="${maven.multiproject.basedir}" - banner="Getting projects for creating an overview page" - includes="${maven.multiproject.includes}" - excludes="${maven.multiproject.excludes}" - postProcessing="true" - ignoreFailures="true" - /> + <j:new var="file" className="java.io.File"> + <j:arg value="${maven.gen.docs}/${overviewPageLink}.xml"/> + </j:new> + + <mkdir dir="${file.parent}"/> - <ant:echo>Using tamplate:${maven.multiproject.templates}/projects-overview.xml</ant:echo> + <ant:echo>${file.parent} ${file.parent}</ant:echo> + <ant:echo>create ${overviewPageCreate}</ant:echo> + <j:if test="${overviewPageCreate=='true'}"> <velocity:merge - name="${maven.gen.docs}/projects-overview.xml" + name="${maven.gen.docs}/${overviewPageLink}.xml" basedir="${maven.multiproject.templates}" template="projects-overview.xml"/> </j:if> - + </goal> @@ -163,7 +172,9 @@ <!--==================================================================--> <!-- Run specific sets of goals for all subprojects --> <!--==================================================================--> - <goal name="multiproject:goal" description="Run a given goal on all projects"> + <goal name="multiproject:goal" + description="Run a given goal on all projects"> + <m:param-check value="${goal}" fail="true"> A goal to run must be specified, e.g. maven -Dgoal=clean multiproject:goal</m:param-check> @@ -183,7 +194,7 @@ <!-- Builds all artifacts for all subprojects --> <!--==================================================================--> <goal name="multiproject:artifact" - description=" Builds all artifacts for all subproject"> + description=" Builds all artifacts for all subproject"> <j:set var="goal" value="multiproject:artifact-callback"/> <attainGoal name="multiproject:goal"/> @@ -191,7 +202,10 @@ </goal> <goal name="multiproject:artifact-callback"> - <attainGoal name="${maven.multiproject.type}:${maven.multiproject.type}"/> + + <ant:echo>Running ${maven.multiproject.type}:${maven.multiproject.type} for ${pom.name}</ant:echo> + <attainGoal name="${maven.multiproject.type}:${maven.multiproject.type}"/> + </goal> @@ -199,27 +213,33 @@ <!-- Run 'artifact':install for all subprojects --> <!--==================================================================--> <goal name="multiproject:install" - description="Run 'artifact':install for all subprojects"> + description="Run 'artifact':install for all subprojects"> <j:set var="goal" value="multiproject:install-callback"/> <attainGoal name="multiproject:goal"/> + </goal> <goal name="multiproject:install-callback"> + + <ant:echo>Running ${maven.multiproject.type}:install for ${pom.name}</ant:echo> <attainGoal name="${maven.multiproject.type}:install"/> + </goal> <!--==================================================================--> <!-- Run 'artifact':install-snapshot for all subprojects --> <!--==================================================================--> <goal name="multiproject:install-snapshot" - description="Run 'artifact':install-snapshot for all subprojects"> + description="Run 'artifact':install-snapshot for all subprojects"> <j:set var="goal" value="multiproject:install-snapshot-callback"/> <attainGoal name="multiproject:goal"/> + </goal> <goal name="multiproject:install-snapshot-callback"> + <ant:echo>Running ${maven.multiproject.type}:install-snapshot for ${pom.name}</ant:echo> <attainGoal name="${maven.multiproject.type}:install-snapshot"/> </goal> @@ -227,64 +247,78 @@ <!-- Run 'artifact':deploy for all subprojects --> <!--==================================================================--> <goal name="multiproject:deploy" - description="Run 'artifact':deploy for all subprojects"> + description="Run 'artifact':deploy for all subprojects"> <j:set var="goal" value="multiproject:deploy-callback"/> <attainGoal name="multiproject:goal"/> + </goal> <goal name="multiproject:deploy-callback"> - <attainGoal name="${maven.multiproject.type}:deploy"/> + + <ant:echo>Running ${maven.multiproject.type}:deploy for ${pom.name}</ant:echo> + <attainGoal name="${maven.multiproject.type}:deploy"/> + </goal> <!--==================================================================--> <!-- Run 'artifact':deploy-snapshot for all subprojects --> <!--==================================================================--> <goal name="multiproject:deploy-snapshot" - description="Run 'artifact':deploy-snapshot for all subprojects"> + description="Run 'artifact':deploy-snapshot for all subprojects"> <j:set var="goal" value="multiproject:deploy-snapshot-callback"/> <attainGoal name="multiproject:goal"/> </goal> <goal name="multiproject:deploy-snapshot-callback"> - <attainGoal name="${maven.multiproject.type}:deploy-snapshot"/> + + <ant:echo>Running ${maven.multiproject.type}:deploy-snapshot for ${pom.name}</ant:echo> + <attainGoal name="${maven.multiproject.type}:deploy-snapshot"/> + </goal> <!--==================================================================--> - <!-- Maven Report API - Register --> + <!-- Maven Report API - Register --> <!--==================================================================--> <goal name="maven-multiproject-plugin:register"> + <doc:registerReport name="Dependency Convergence" link="dependency-convergence-report" pluginName="maven-multiproject-plugin" description="Generate report which shows how consistent are the versions of artitfacts between projects."/> + </goal> <!--==================================================================--> - <!-- Maven Report API - Deregister --> + <!-- Maven Report API - Deregister --> <!--==================================================================--> <goal name="maven-multiproject-plugin:deregister"> - <doc:deregisterReport name="Multiproject Dependency Convergence Report"/> + + <doc:deregisterReport name="Multiproject Dependency Convergence Report"/> + </goal> <!--==================================================================--> - <!-- Maven Report API - Deregister --> + <!-- Maven Report API - Report --> <!--==================================================================--> <goal name="maven-multiproject-plugin:report"> - <attainGoal name="multiproject:dependency-convergence-report"/> + + <attainGoal name="multiproject:dependency-convergence-report"/> + </goal> <!--==================================================================--> - <!-- Generate report which shows the harmony of versions of dependencies --> - <!-- which are used in sub-projects --> + <!-- Generate report which shows the harmony of --> + <!-- versions of dependencies which are used in sub-projects --> <!--==================================================================--> <goal name="multiproject:dependency-convergence-report" - description="Generate report which shows how consistent are the versions of artitfacts between projects" > + description="Generate report which shows how consistent are the versions of artitfacts between projects" > + <mkdir dir="${maven.gen.docs}"/> <!-- FIXME: 2) Needs to be a tag @@ -317,6 +351,7 @@ <j:set var="goal" value="clean:clean"/> <attainGoal name="multiproject:goal"/> + </goal> 1.7 +5 -1 maven/src/plugins-build/multiproject/plugin.properties Index: plugin.properties =================================================================== RCS file: /home/cvs/maven/src/plugins-build/multiproject/plugin.properties,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- plugin.properties 27 Jul 2003 21:48:41 -0000 1.6 +++ plugin.properties 28 Jul 2003 19:56:49 -0000 1.7 @@ -20,4 +20,8 @@ maven.multiproject.aggregateDir=multiproject/ #should overview page be created? -maven.multiproject.overviewPage=true +maven.multiproject.overviewPage.create=true +maven.multiproject.overviewPage.title=Overview of projects +maven.multiproject.overviewPage.link=projects-overview +maven.multiproject.overviewPage.linkTitle=Overview of project +maven.multiproject.overviewPage.text= \ No newline at end of file
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]