Context

The actual documentation mechanism takes the Javadoc description of a MOJO to generate the plugin reports. The main issue is that the documentation is only in one language.

Here is a simple javadoc header for MOJO:

MyMojo.java
package org.apache.maven.plugin.new;

/**
 * Generates documentation for this MOJO.
 *
 * @goal myGoal
 * @phase generate-sources
 */
public class MyMojo
    extends AbstractMojo {}

Solution

We propose to add a @i18n tag to handle the internationalization. The default language will be the javadoc description, other languages should be handle by the @i18n tag.
The bundles names will be based on the package/class and located in /src/main/resources/

MyMojo.java
package org.apache.maven.plugin.new;

/**
 * Generates documentation for this MOJO.
 *
 * @i18n key="myMojo.description"
 * @goal myGoal
 * @phase generate-sources
 */
public class MyMojo
    extends AbstractMojo {}
MyMojo_fr.properties
myMojo.description=Génére de la documentation pour ce MOJO.
  • No labels

1 Comment

  1. Unknown User (gagern)

    Why add another name for things? Everything that can be named so far already has two names, the plugin:goal:parameter name and the package.class.method name. Either one should do. So if you plan to name the properties file just like the class file, which I think is a good idea, simply state that the mojo description is called "mojo.description" and the description of parameter foo is called "parameter.foo.description", then there is no need at all for another tag. I would assume that such a convention better ifts the Maven philosophy than this tiny bit of configurability you 'd gain from having feely choosable property names.