Java 为汇流Wiki定制Maven报告插件
我开发了一个Maven报告插件,供我们公司内部使用。它设计为在独立模式下工作,因此可以针对给定项目运行,而无需在pom的Java 为汇流Wiki定制Maven报告插件,java,maven-2,maven-plugin,confluence,Java,Maven 2,Maven Plugin,Confluence,我开发了一个Maven报告插件,供我们公司内部使用。它设计为在独立模式下工作,因此可以针对给定项目运行,而无需在pom的部分进行配置 但是,文档的格式目前是xhtml,我们所有的项目文档目前都存储在Confluence上。在Confluence标记中生成文档将非常方便。已经有ConfluenceSink和ConfluenceSinkFactory类可以生成正确的标记,但是我没有看到一种明显的方法来设置AbstractMavenReport的子类使用的接收器 我目前采取的方法是: 重写execu
部分进行配置
但是,文档的格式目前是xhtml,我们所有的项目文档目前都存储在Confluence上。在Confluence标记中生成文档将非常方便。已经有ConfluenceSink
和ConfluenceSinkFactory
类可以生成正确的标记,但是我没有看到一种明显的方法来设置AbstractMavenReport
的子类使用的接收器
我目前采取的方法是:
- 重写
方法,因为该方法当前对输出xhtml的execute
的使用进行硬编码SiteRenderSink
- 查找
的替代方法,因为此方法需要上述siterender.generateDocument()
siterendersink
最后,我可以正式指出Maven的API文档非常糟糕吗?我不需要手持式的教程——只要一些基本的Javadoc和一些有见地的评论,就可以极大地帮助我完成这个代码库的任何工作。所以我设法制定了一个可行的解决方案。我在正确的轨道上,我只是让事情变得比需要的更复杂——同样,更好的文档可以避免我筛选各种插件来寻找示例 所以,如果有人想做类似的事情,首先让你的插件在生成xhtml上工作。我发现在这方面是相当有帮助的。要更改输出格式,必须重写
execute()
方法,并为generate()
方法提供相应的Sink
和SinkFactory
实现
以下是汇流标记中的输出示例:
@Override
public void execute()
throws MojoExecutionException
{
try
{
File outputDirectory = new File(getOutputDirectory());
String filename = getOutputName() + ".cf";
Locale locale = Locale.getDefault();
ConfluenceSinkFactory factory = new ConfluenceSinkFactory();
Sink sink = factory.createSink(outputDirectory, filename);
generate(sink, factory, locale);
}
catch ( IOException e )
{
throw new MojoExecutionException(e);
}
catch ( MavenReportException e )
{
throw new MojoExecutionException(e);
}
}