3

我开发了一个 Maven 报告插件供我们公司内部使用。它被设计为在独立模式下工作,因此它可以针对给定项目运行,而无需在<reporting>pom.xml 部分中进行配置。

然而,文档的格式目前是 xhtml,我们所有的项目文档目前都存储在 Confluence 中。在 Confluence 标记中生成文档会非常方便。已经存在可以生成正确标记ConfluenceSinkConfluenceSinkFactory类,但是我看不到设置AbstractMavenReport.

我目前采取的方法是:

  • 覆盖该execute方法,因为这当前硬编码了SiteRendererSink输出 xhtml 的使用。
  • 寻找替代方案SiteRenderer.generateDocument(),因为此方法需要上述SiteRendererSink.

有没有人解决过这些问题?感谢反馈。

最后,我可以记录一下 Maven 的 API 文档很糟糕吗?我不需要手把手的教程——只需要一些基本的 javadocs 和一些有见地的评论就会对使用这个代码库完成任何事情有很大的帮助。

4

1 回答 1

1

所以我设法制定了一个可行的解决方案。我走在正确的轨道上,我只是让事情变得比他们需要的更复杂——再一次,更好的文档可以让我省去筛选各种插件以寻找示例。

所以,如果有人想做类似的事情,首先让你的插件在生成 xhtml 时工作。我发现这个链接在这方面很有帮助。要更改输出格式,您必须重写该execute()方法并为该generate()方法提供适当的Sink实现SinkFactory

这是 Confluence 标记中的输出示例:

@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);
    }
}
于 2011-03-23T20:13:24.707 回答