创建一个新的 Doxia 宏

您需要添加以下plexus-component-metadata 插件配置,以从包含宏的项目的注释中生成正确的 Plexus component.xml文件:

<project>
  ...
  <build>
    ...
    <plugins>
      <plugin>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-component-metadata</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  ...
  </build>
  ...
</project>

您应该实现AbstractMacro类:

import org.apache.maven.doxia.macro.AbstractMacro;

/**
 * @plexus.component role="org.apache.maven.doxia.macro.Macro" role-hint="my"
 */
public class MyMacro
    extends AbstractMacro
{
...
    public void execute( Sink sink, MacroRequest request )
        throws MacroExecutionException
    {
        String myValue = (String) request.getParameter( "myParam" );
...
    }
...
}

要使用它,您需要编写以下标记:

  • 易于
    %{my|myParam=myValue} <!-- my is the macro name defined by role-hint -->
  • XDoc
    <macro name="my"> <!-- my is the required macro name defined by role-hint -->
      <param name="myParam" value="myValue"/>
    </macro>

参考