Maven站点插件分别部署快照和版本?

时间:2011-08-07 22:31:45

标签: maven properties maven-site-plugin

我想为快照和版本部署一个Maven项目层次结构的站点(即http://example.org用于版本,http://dev.example.org用于快照)并保留项目层次结构(父项,子项,模块)用适当的链接纠正。

我的尝试是分配属性以保存“当前”站点信息以及保存每种可能类型站点的属性(即dev,stable等)。然后我会使用配置文件在发布时切换站点信息。以下是我的意思的一个例子。

父POM代码段:

<project>
...

    <url>http://${site.host}/</url>

    <properties>
        <site.host.stable>example.org</site.host.stable>
        <site.host.stable.desc>PARENT-STABLE</site.host.stable.desc>

        <site.host.dev>dev.example.org</site.host.dev>
        <site.host.dev.desc>PARENT-DEV</site.host.dev.desc>

        <site.host>${site.host.dev}</site.host>
        <site.host.other>${site.host.stable}</site.host.other>
        <site.host.other.desc>${site.host.stable.desc}</site.host.other.desc>
    </properties>

    <distributionManagement>
        <site>
            <id>site-deploy-id</id>
            <url>.../var/www/${site.host}</url>
        </site>
    </distributionManagement>

    <profiles>
        <profile>
            <id>example-release</id>
            <properties>
                <site.host>${site.host.stable}</site.host>
                <site.host.other>${site.host.dev}</site.host.other>
                <site.host.other.desc>${site.host.dev.desc}</site.host.other.desc>
            </properties>
        </profile>
    </profiles>

...
</project>

父网站描述符示例:

<project>
    <body>
        <links>
            <item name="${site.host.other.desc}" href="http://${site.host.other}" />
        </links>
    </body>
</project>

示例子站点描述符:

<project>
    <body>
        <menu ref="parent"/>
    </body>
</project>

此分发管理部分可以完美地工作,并按照我的预期部署文件(基于活动配置文件到目标计算机上的正确目录)。

对于实际的网站部分:

对于站点插件2.2版,这适用于父站点,但即使指定的发布配置文件处于活动状态,所有后代站点也会恢复为快照或“dev”版本。使用站点插件3.0版,将打印以下消息,并且(如上所述)不会创建父菜单。链接部分的作用类似于2.2版。

[WARNING] Unable to find a URL to the parent project. The parent menu will NOT be added.

使用codehaus中的properties-maven-plugin,我可以看到配置文件属性已正确应用,但网站插件似乎忽略了这一点。

有没有更好的方法来完成我想要做的事情?这是一个错误,还是我在某个地方犯了错误?

0 个答案:

没有答案