我想为快照和版本部署一个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,我可以看到配置文件属性已正确应用,但网站插件似乎忽略了这一点。
有没有更好的方法来完成我想要做的事情?这是一个错误,还是我在某个地方犯了错误?