创建一个新的 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
会为您提供更多功能。