创建一个新的 Doxia 模块
首先,最简单的方法是创建一个以doxia-modules作为父级的 POM:
<project>
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
<version>1.9.1</version> <!-- Latest release -->
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>doxia-module-my</artifactId>
<name>Doxia :: MY Module</name>
...
</project>其次,你应该实现一些 Doxia 类,这取决于你想要什么特性:解析或生成标记。
解析
- MyParser类
import org.apache.maven.doxia.parser.AbstractParser; import org.apache.maven.doxia.parser.Parser; import org.codehaus.plexus.component.annotations.Component; @Component( role = Parser.class, hint = "my" ) public class MyParser extends AbstractParser { ... }根据类型标记,扩展
AbstractTextParser或AbstractXmlParser可能XhtmlBaseParser会为您提供更多功能。 - MyParseException类(可选)
import org.apache.maven.doxia.parser.ParseException; public class MyParseException extends ParseException { ... } - MyParserModule类
import org.apache.maven.doxia.parser.module.AbstractParserModule; import org.codehaus.plexus.component.annotations.Component; @Component( role = ParserModule.class, hint = "my" ) public class MyParserModule extends AbstractParserModule { ... }
生成
- MySink类
import org.apache.maven.doxia.sink.SinkAdapter; public class MySink extends SinkAdapter { ... }根据类型标记,扩展
AbstractTextSink或AbstractXmlSink可能XhtmlBaseSink会为您提供更多功能。 - MySinkFactory类
import org.apache.maven.doxia.sink.SinkFactory; import org.codehaus.plexus.component.annotations.Component; @Component( role = SinkFactory.class, hint = "my" ) public class MySinkFactory extends SinkFactory { ... }根据类型标记,扩展
AbstractTextSinkFactory或AbstractXmlSinkFactory可能AbstractBinarySinkFactory会为您提供更多功能。



