brett 2004/11/24 00:42:37 Modified: xdocs/using developing-plugins.xml xdocs/reference 3rdparty.xml sharing-plugins.xml xdocs/developers building-from-source.xml Log: documentation updates Revision Changes Path 1.2 +35 -11 maven/xdocs/using/developing-plugins.xml Index: developing-plugins.xml =================================================================== RCS file: /home/cvs/maven/xdocs/using/developing-plugins.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- developing-plugins.xml 22 Nov 2004 11:52:59 -0000 1.1 +++ developing-plugins.xml 24 Nov 2004 08:42:37 -0000 1.2 @@ -23,6 +23,7 @@ <title>Developing Plugins</title> <author email="[EMAIL PROTECTED]">Jason van Zyl</author> <author email="[EMAIL PROTECTED]">Pete Kazmier</author> + <author email="[EMAIL PROTECTED]">Brett Porter</author> </properties> <body> @@ -160,9 +161,9 @@ </p> <source>hello.greeting=Hi</source> <p> - Edit the <code>plugin.jelly</code> file so that the <code><echo></code> line reads: + Edit the <code>plugin.jelly</code> file so that the <code><ant:echo></code> line reads: </p> - <source><![CDATA[<echo>${hello.greeting} from a Maven Plug-in</echo>]]></source> + <source><![CDATA[<ant:echo>${hello.greeting} from a Maven Plug-in</ant:echo>]]></source> <p> Now, install the new plugin and run it (<b>note</b>, you do not need to run <code>maven plugin</code> first): </p> @@ -182,15 +183,28 @@ <p> You can use plugin resources to be able to load external files from inside a plugin. Let's say you wanted to copy an image into every site. First, add a file called - <code>src/plugin-resources/hello.gif</code> to the source tree. Then, you can add the following - to your <code>hello:hello</code> goal in <code>plugin.jelly</code>. + <code>src/plugin-resources/hello-report.xml</code> to the source tree that looks like this: </p> - <source><![CDATA[... -<ant:copy todir="${maven.docs.dest}/images" file="${plugin.resources}/hello.gif" /> + <source><![CDATA[<document> + <body> + <section name="Hello"> + <p>Hi!</p> + </section> + </body> +</document>]]></source> + <p> + Next, you can create a new goal called <code>hello:report</code> + in <code>plugin.jelly</code>. + </p> + <source><![CDATA[... + <goal name="hello:report"> + <ant:copy todir="${maven.gen.docs}" file="${plugin.resources}/hello-report.xml" /> + </goal> ...]]></source> <p> The plugin resources become most useful when you have templates for generate site reports - based on the project, which is discussed in the next section. + based on the project, which is discussed in the next section. This report goal will be used + to "generate" the Hello Report. </p> </subsection> <subsection name="Providing Reports in a Plugin"> @@ -214,7 +228,8 @@ <p> To register a report withing your project, you should define three goals (using hello as the example): <ul> - <li><code>hello:report</code> - generates the report content.</li> + <li><code>hello:report</code> - generates the report content. This was the goal we created in the + previous section.</li> <li><code>hello:register</code> - registers the report with Maven for inclusion on the site</li> <li><code>hello:deregister</code> - disables the report so that a project can override a previous enabling command</li> @@ -303,7 +318,7 @@ <p> The <code>name</code> parameter should correspond to the original registration <code>name</code> parameter. </p> - <source><![CDATA[<goal name="maven-javadoc-plugin:deregister"> + <source><![CDATA[<goal name="hello:deregister"> <doc:deregisterReport name="Hello"/> </goal>]]></source> <p> @@ -312,9 +327,18 @@ </p> <source><![CDATA[<reports> <report>hello</report> -</reports> - ]]></source> +</reports>]]></source> + <p> + You can add this to any project, but for now we'll just reuse the same plugin project to test the plugin on. + Add the above section to the <code>project.xml</code> you've created, then run: + </p> + <source>maven site</source> + <p> + Notice the final result of a <code>target/docs/hello-report.html</code> file. You can view this in your + browser. When doing so, you'll also see the "Hello" item under the "Project Reports" menu in the navigation. + </p> </subsection> + <!-- TODO: later, talk about how to write in Java and include via Jellybean Tag --> </section> <section name="Sharing Your Plugin"> 1.2 +1 -1 maven/xdocs/reference/3rdparty.xml Index: 3rdparty.xml =================================================================== RCS file: /home/cvs/maven/xdocs/reference/3rdparty.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- 3rdparty.xml 22 Nov 2004 11:52:58 -0000 1.1 +++ 3rdparty.xml 24 Nov 2004 08:42:37 -0000 1.2 @@ -35,7 +35,7 @@ <subsection name="Maven Plugins Project @ sf.net"> <p> The <a href="http://maven-plugins.sf.net/">Maven Plugins Project</a> at SourceForge develops a series of - plugins. <!-- TODO: examples, explain reason? --> + plugins. </p> </subsection> <subsection name="Independant Plugins"> 1.2 +100 -136 maven/xdocs/reference/sharing-plugins.xml Index: sharing-plugins.xml =================================================================== RCS file: /home/cvs/maven/xdocs/reference/sharing-plugins.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- sharing-plugins.xml 22 Nov 2004 11:52:58 -0000 1.1 +++ sharing-plugins.xml 24 Nov 2004 08:42:37 -0000 1.2 @@ -20,20 +20,19 @@ <document> <properties> - <author email="[EMAIL PROTECTED]">Tim Shadel</author> <title>Sharing your plugin</title> + <author email="[EMAIL PROTECTED]">Tim Shadel</author> + <author email="[EMAIL PROTECTED]">Brett Porter</author> </properties> <body> -<!-- TODO - <section name="Overview"> + <section name="Sharing Plugins"> <p> - You've just created a killer Maven plugin. Now what?! + You've just created a killer Maven plugin. Now what?! + </p> + <p> + Where should plugins live? Who can update them? Does it really make a difference? </p> - </section> - - <section name="Plugin Maintenance"> - <p>Where should plugins live? Who can update them? Does it really make a difference?</p> <subsection name="Can you put my plugin in the Maven distribution?"> <p> The main Maven distribution includes many plugins, but the growing trend is for plugin owners to host @@ -43,151 +42,116 @@ </subsection> <subsection name="Plugin owners are the best maintainers"> - <p>Since only Maven committers may update the <code>maven-plugins</code> repository, changes you make to your - plugin will take a while to make it into a Maven distribution. Each plugin needs a committer willing to - maintain it, and that plugin is not the only piece of Maven the committer works on.</p> - - <p>Plugin owners are in a much better position to maintain the plugin. They originally wrote the plugin. - They have a vested interest in seeing it succeed. If they <a href="#Step_1__How_do_I_host_my_Maven_plugin_">host</a> - the plugin themselves, then updates can be incorporated quickly, and users get the benefits of updated software - quicker.</p> - - <p>This benefit is often maximized when a team that writes a library, like the StatCvs group, also creates the Maven - plugin. As the library changes, the plugin may be updated to keep in sync. In fact, the - <a href="http://jakarta.apache.org/cactus/integration/maven/">Cactus</a> and - <a href="http://statcvs-xml.berlios.de/maven-plugin/">StatCvs</a> - plugins were among the first to voluntarily remove their plugins from the Maven distribution and be hosted - with their respective libraries.</p> + <p> + Since only Maven committers may update the <code>maven-plugins</code> repository, changes you make to your + plugin will take a while to make it into a Maven distribution. Each plugin needs a committer willing to + maintain it, and that plugin is not the only piece of Maven the committer works on. + </p> + <p> + Plugin owners are in a much better position to maintain the plugin. They originally wrote the plugin. + They have a vested interest in seeing it succeed. If they + <a href="#Step_1__How_do_I_host_my_Maven_plugin_">host</a> the plugin themselves, then updates can be + incorporated quickly, and users get the benefits of updated software quicker. + </p> + <p> + This benefit is often maximized when a team that writes a library, like the StatCvs group, also creates the + Maven plugin. As the library changes, the plugin may be updated to keep in sync. In fact, the + <a href="http://jakarta.apache.org/cactus/integration/maven/">Cactus</a> and + <a href="http://statcvs-xml.berlios.de/maven-plugin/">StatCvs</a> + plugins were among the first to voluntarily remove their plugins from the Maven distribution and be hosted + with their respective libraries. + </p> </subsection> - </section> <section name="Publishing Your Plugin"> <subsection name="Step 1. How do I host my Maven plugin?"> - <p>To "host" a Maven plugin, you require only two things:</p> - <ul> - <li>A place to keep your source code</li> - <li>A website to deploy the following - <ul> - <li>Your plugin's site (<code>maven site</code>) documentation</li> - <li>Your plugin's JAR bundles for ibiblio upload requests</li> - </ul> - </li> - </ul> - <p>There are a variety of options available for each need. Your source code may simply be kept on your hard - drive, using a local installation of a version control tool like <a href="http://www.cvshome.org/">CVS</a> or - <a href="http://subversion.tigris.org/">Subversion</a> (you do use version control, don't you?). If you'd like to - share your plugin source with others, you can request a new project at a service like <a href="http://sf.net">SourceForge</a> - or <a href="http://java.net">Java.Net</a>, or request to join an existing project like the - <a href="http://maven-plugins.sourceforge.net/">Maven-Plugins</a> project on SourceForge.</p> - - <p>If you're creating a plugin for an existing open-source (or even closed-source) library, the ideal situation is - to approach the library maintainers about hosting your plugin source and site. That way the plugin source is close to - the people most likely to care about its success, and ensure it works well far into the future. The plugin site - is located close to the already well-known library site. In the end, this cooperation means a better chance at happy - users, and up-to-date plugins for everyone.</p> + <p> + To "host" a Maven plugin, you require only two things: + <ul> + <li>A place to keep your source code</li> + <li>A website to deploy the following + <ul> + <li>Your plugin's site (<code>maven site</code>) documentation</li> + <li>Your plugin's JAR bundles for ibiblio upload requests</li> + </ul> + </li> + </ul> + </p> + <p> + There are a variety of options available for each need. Your source code may simply be kept on your hard + drive, using a local installation of a version control tool like <a href="http://www.cvshome.org/">CVS</a> or + <a href="http://subversion.tigris.org/">Subversion</a> (you do use version control, don't you?). If you'd + like to share your plugin source with others, you can request a new project at a service like + <a href="http://sf.net">SourceForge</a> or <a href="http://java.net">Java.Net</a>, or request to join an + existing project like the <a href="http://maven-plugins.sourceforge.net/">Maven-Plugins</a> project on + SourceForge. + </p> + <p> + If you're creating a plugin for an existing open-source (or even closed-source) library, the ideal situation + is to approach the library maintainers about hosting your plugin source and site. That way the plugin source + is close to the people most likely to care about its success, and ensure it works well far into the future. + The plugin site is located close to the already well-known library site. In the end, this cooperation means + a better chance at happy users, and up-to-date plugins for everyone. + </p> </subsection> <subsection name="Step 2. OK. My plugin has a host, how can I put it on ibiblio.org?" id="upload"> - <p>Please see the <a href="../../repository-upload.html">instructions</a> for uploading a resource to ibiblio.org.</p> + <p> + If the project is part of the repository mirroring program, such as <code>maven-plugins.sf.net</code>, + publishing it at SourceForge will automatically mirror it to ibiblio with further work. + </p> - <p><strong>NOTE:</strong> If your plugin requires resources (JAR files) that are not already at ibilio.org, you - may need to make several separate upload requests.</p> + <p> + However, if the project is an independant, please see the + <a href="../reference/repository-upload.html">instructions</a> for uploading a resource to ibiblio.org. + </p> + + <p> + <strong>NOTE:</strong> If your plugin requires resources (JAR files) that are not already at ibilio.org, you + may need to make several separate upload requests. + </p> </subsection> <subsection name="Step 3. My upload request was granted, but no one knows my plugin exists!"> - <p>There are two ways to let your potential users know about your plugin. The first is through sending an announcement - to the <code>maven-user</code> mailing list. Here's a few pointers on how to go about it:</p> - <ul> - <li>Read <a href="releasing-plugins.html">Releasing Plugins</a>, concentrating on the announcement portion.</li> - <li>Review an <a href="http://www.mail-archive.com/users@maven.apache.org/msg09117.html">excellent announcement</a> - sent by the StatCvs group, which includes - <a href="#Step_4_So_now_that_they_found_my_plugin_how_do_users_install_it_">plugin installation instructions</a>.</li> - <li>Combine the advice of the two parts to make your own effective announcement.</li> - <li>Make sure you've subscribed to the <code>maven-user</code> mailing list.</li> - <li>Send your annoucement to the <code>maven-user</code> mailing list.</li> - </ul> - <p>The second way to publicize your plugin is on the Maven site itself. The Maven project currently maintains a list of - other sites that host plugins. The best way to get your link on this page is to get the Maven source, and submit a - patch to the list file itself. Here are the steps in a bit more detail.</p> - <ul> - <li>Get the <code>maven-plugins</code> source as described <a href="http://maven.apache.org/reference/plugins/cvs-usage.html">here</a>.</li> - <li>Open the file <code>MAVEN_PLUGINS_SOURCE/xdocs/index.xml</code>.</li> - <li>If your plugin host is not listed, add the following, so your site's name falls <strong>in alphabetical order</strong> - with the rest of the site list (except for the Maven site itself). - <source><![CDATA[ -<subsection name="Plugins on the [plugin host site name] site"> - <table> - <tr> - <td><a href="http://www.example.com/plugin">Example plugin</a></td> - <td>Plugin for Example Documentation</td> - </tr> - </table> -</subsection> - ]]></source> - </li> - <li>If your plugin host is already listed, add the table row (<code><tr></code>) portion above to your - host's section. Order your plugins appropriately within your host section.</li> - <li>Now follow the <a href="http://wiki.codehaus.org/maven/SubmittingPatches">guidelines for creating a Maven patch</a>, - and submit your patch to <a href="http://jira.codehaus.org">JIRA</a>. Use the project <code>maven</code> - (<a href="http://jira.codehaus.org/secure/BrowseProject.jspa?id=10030">here</a>) and the <code>documentation</code> component. - Place a note in your JIRA issue telling the developer that your patch is against the <code>maven-plugins</code> documentation.</li> - <li>Once your patch is applied, and the Maven site is redeployed, you'll have a link to your plugin's home page from the Maven site.</li> - </ul> + <p> + There are two ways to let your potential users know about your plugin. The first is through sending an + announcement to the <code>maven-user</code> mailing list. Here's a few pointers on how to go about it: + <ul> +<!-- TODO: fix link --> + <li> + Read <a href="releasing-plugins.html">Releasing Plugins</a>, concentrating on the announcement portion. + </li> + <li> + Review an <a href="http://www.mail-archive.com/users@maven.apache.org/msg09117.html">excellent + announcement</a> sent by the StatCvs group, which includes plugin installation instructions. + </li> + <li> + Combine the advice of the two parts to make your own effective announcement. You may like to use + the <a href="../reference/plugins/announcement/">Announcement Plugin</a> to generate and perhaps + mail the announcement. + </li> + <li>Make sure you've subscribed to the <code>maven-user</code> mailing list.</li> + <li>Send your annoucement to the <code>maven-user</code> mailing list.</li> + </ul> + </p> + <p> + The second way to publicize your plugin is on the Maven site itself. The Maven project currently maintains a + list of other sites that host plugins. Simply raise a request in JIRA to have a link added. Be sure to include + the relevant information, following an existing plugin's description as an example. + </p> </subsection> <subsection name="Step 4. So now that they found my plugin, how do users install it?"> - <p>Here's the general idea:</p> - <source>maven plugin:download -DartifactId=[plugin-name] -DgroupId=[plugin-group] -Dversion=[plugin-version]</source> - <p>For example:</p> + <p> + Here's the general idea: + </p> + <source>maven plugin:download -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]</source> + <p> + For example: + </p> <source>maven plugin:download -DartifactId=maven-statcvs-plugin -DgroupId=statcvs -Dversion=2.4</source> - </subsection> - - <section name="Related Links"> - <subsection name="Official Maven Documentation"> - <p>Documentation maintained by Maven committers:</p> - <ul> - <li><a href="developer-guide.html">Developer Guide</a>: Start here. This - provides the most clear and comprehensive start to writing Maven plugins.</li> - <li><a href="releasing-plugins.html">Releasing Plugins</a>: - Maven documentaion for contributors modifying a Maven plugin. Look for ways to have your own project follow - similar standards.</li> - <li><a href="http://maven.apache.org/reference/plugins/index.html">Plugins</a>: Lists sites that host Maven plugins.</li> - <li><a href="../../repository-upload.html">Repository Upload Instructions</a>: How to request your - resources be uploaded to ibiblio.org. A must read. Watch it for updates, and carefully follow the most recent - instructions to give your resource the best chance of quick processing.</li> - <li><a href="../../faq.html">FAQ</a>: Read it. Use it. Love it. Live it.</li> - </ul> - </subsection> - <subsection name="Maven Wiki"> - <p>These links include collected documentation about Maven, contributed from a variety of sources:</p> - <ul> - <li><a href="http://wiki.codehaus.org/maven/HowToCreateYourFirstPlugIn">A first</a> and - <a href="http://wiki.codehaus.org/maven/HowToCreateYourFirstPlugIn2">second</a> part of a tutorial for making - a minimal Maven plugin.</li> - <li><a href="http://wiki.codehaus.org/maven/PluginCreation">PluginCreation</a>: A more comprehensive contributed - tutorial for creating your own plugin.</li> - <li><a href="http://wiki.codehaus.org/maven/PluginModificationGuidelines">PluginModificationGuidelines</a> and - <a href="http://wiki.codehaus.org/maven/ReleasingPlugins">ReleasingPlugins</a>: - Contributed discussion of what Maven contributors or developers do when modifying a Maven plugin in Maven CVS. - Many things are duplicates of official docs now. Look for ways to have your own project follow similar standards.</li> - <li><a href="http://wiki.codehaus.org/maven/PluginOwners">PluginOwners</a>: Beginnings of a list linking plugins - and principal maintainers</li> - </ul> - </subsection> - <subsection name="Mailing List Threads"> - <p>Discussions that occured on the Maven mailing lists:</p> - <ul> - <li><a href="http://www.mail-archive.com/dev@maven.apache.org/msg10903.html">StatCvs Maintainership</a>: A discussion, - initiated by the StatCvs group, about the benefits of moving maintainership of the StatCvs plugin from the Maven - team to the StatCvs team</li> - <li><a href="http://www.mail-archive.com/users@maven.apache.org/msg09117.html">StatCvs Plugin Announcement</a>: - Example of how to properly announce releases of your plugin.</li> - </ul> - </subsection> - </section> </section> ---> </body> </document> 1.2 +1 -1 maven/xdocs/developers/building-from-source.xml Index: building-from-source.xml =================================================================== RCS file: /home/cvs/maven/xdocs/developers/building-from-source.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- building-from-source.xml 22 Nov 2004 11:52:58 -0000 1.1 +++ building-from-source.xml 24 Nov 2004 08:42:37 -0000 1.2 @@ -33,7 +33,7 @@ to successfully build Maven from scratch, a bootstrapping process is required to jumpstart the build. Alternatively, if you already have Maven installed and would just like to build a newer version, - you can follow <a href="#Building_Maven_With_Maven">these instructions</a>. + you can follow <a href="#Building_Maven_with_Maven">these instructions</a>. </p> </section> <section name="Bootstrapping Maven with Ant">
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]