Maven2:如何在使用mvn网站时暂存JXR插件结果?

时间:2009-07-31 14:48:01

标签: maven-2 maven-plugin

我有一个多模块项目,我想使用JXR maven插件在项目的网站上部署我的源代码的HTML版本。

问题是JXR插件运行良好,为我的每个模块正确生成了XREF文件夹,但是当我使用mvn site:stage命令来检索所有项目的站点内容并正确地连接所有链接时生成它不会检索XREF文件夹。

以下是我的POM文件的摘录,其中配置了JXR插件:

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>jxr-maven-plugin</artifactId>
   <configuration>
      <aggregate>true</aggregate>
   </configuration>
</plugin>

以下是我用来创建和暂存网站的命令:

mvn site site:stage

你们有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

不确定这是否相关,但是你的命令是运行网站两次,mvn网站会生成网站,而site:stage也会运行网站,也许这会导致问题,但老实说我看不出原因。< / p>

查看JXR documentation,它只提到了网站:网站目标,我无法理解为什么网站无法正常运行:阶段目标,因为它扩展了它。如果您运行 site 目标,则将输出复制到另一个目录,运行 site:stage 目标并比较输出,这可能会对问题有所了解。

更新:我自己尝试了这个,并且在c:\ test \ stage中很好地包含了外部参照,并正确地管理了交叉引用。我已经包含了我使用的配置。

在我的父pom中,我定义了这样的站点配置:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <goals>
            <goal>stage</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <stagingDirectory>c:\test\stage</stagingDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

distributionManagement部分配置了站点信息(我上面设置stagingDirectory时并不需要,但如果没有它,目标将无法运行)。

<distributionManagement>  
  <site>
    <id>mojo.website</id>
    <name>Mojo Website</name>
    <url>scp://test/</url>
  </site>
</distributionManagement>

父pom中的我的JXR配置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jxr-plugin</artifactId>
  <reportSets>
    <reportSet>
      <id>src-xref</id>
      <reports>
        <report>jxr</report>
      </reports>
    </reportSet>
    <reportSet>
      <id>test-xref</id>
      <reports>
        <report>test-jxr</report>
      </reports>
    </reportSet>
  </reportSets>
  <configuration>
    <aggregate>true</aggregate>
  </configuration>
</plugin>

命令行运行 mvn clean site:stage

编辑:根据评论,有一个codehaus jxr plugin语义略有不同。请务必使用org.apache.maven.plugins版本而不是org.codehaus.mojo版本。