【问题标题】:Customizing Maven Reporting Plugins for a Confluence Wiki为 Confluence Wiki 定制 Maven 报告插件
【发布时间】:2011-03-22 21:35:17
【问题描述】:

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

但是,文档的格式目前是 xhtml,我们所有的项目文档目前都存储在 Confluence 中。在 Confluence 标记中生成文档会非常方便。已经存在ConfluenceSinkConfluenceSinkFactory 类可以生成正确的标记,但是我看不到设置AbstractMavenReport 子类使用的接收器的明显方法。

我目前采取的方法是:

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

有人解决过这些问题吗?感谢您的反馈。

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

【问题讨论】:

    标签: java maven-2 maven-plugin confluence


    【解决方案1】:

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

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

    以下是 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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-22
      • 2018-01-29
      • 2010-11-19
      • 2022-01-23
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多