2011-06-29 49 views
1

我想创建一个网站的形式与Maven 网站目标生成几个Maven项目的概述。这些项目是不同产品的一部分,一些有亲子关系,一些有依赖关系。如何从无关项目中生成组合的Maven网站?

该网站应该结合来自所有项目的信息,包括JavaDoc,Checkstyle/PMD检查,测试结果和代码覆盖率指标。

我已经创建了一个POM文件,它将每个现有项目作为一个模块进行聚合,每个项目在子文件夹中可用,但输出不会合并到一个站点中。

回答

2

您可以通过将所有项目中的project.build.directory设置为公用文件夹来实现此目的。这可以通过将路径作为参数传递给构建来完成。然后,您可以在公共目标文件夹上运行网站目标。如果您在持续集成环境中运行maven,则可以通过在maven任务中设置targetpath来完成此操作。否则,你将不得不在命令行中指定它。

保持制作方式是相同的开发者,你可以创建时targetpath不是由命令行提供被激活的配置文件。

<profiles> 
    <profile> 
    <id>dev</id> 
    <activation> 
     <property> 
     <name>!targetpath</name> 
     </property> 
    </activation> 
    <properties> 
     <targetpath>target</targetpath> 
    </properties> 
    </profile> 
</profiles> 
+0

这会生成一个包含组合Javadoc但不包含Checkstyle报告的网站。我为每个单独的项目创建了一个/ target/site文件夹。明天我会检查单独的项目POM的配置。 – Kwebble

+0

我无法让它工作。网站插件的文档没有提及设置。 – Kwebble

+0

inputDirectory用于'site:deploy'或'site:stage'目标。 'site:site'应该建立$ {targetpath}/$ {artifactId}下的网站,然后'site:stage'应该将它们复制到一个公共位置。 –