使用两个单独的配置文件中定义的maven变量

时间:2011-02-21 09:27:07

标签: maven-2 maven profiles

我的pom.xml,dev和stage中有两个配置文件:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <hostname>vl-wlp1.hk.oracle.com</hostname>
        </properties>
        <id>stage</id>
        <properties>
            <hostname>vl-wcfs.hk.oracle.com</hostname>
        </properties>
    </profile>
</profiles>

我想在我的网站文档中使用这些:

src/site/apt/index.apt
像这样:

Dev Site: ${dev.hostname}
Stage Site: ${stage.hostname}

我可以这样做或其他具有相同效果的东西吗?

1 个答案:

答案 0 :(得分:2)

不是没有巨大的黑客,不。

如果要独立读取两个属性值,它们必须是两个不同的属性。

这样一个实用的解决方案怎么样:

<properties>
    <dev.host>vl-wlp1.hk.oracle.com</dev.host>
    <stage.host>vl-wcfs.hk.oracle.com</stage.host>
</properties>

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <hostname>${dev.host}</hostname>
        </properties>
        <id>stage</id>
        <properties>
            <hostname>${stage.host}</hostname>
        </properties>
    </profile>
</profiles>

的src /站点/公寓/ index.apt:

Dev Site: ${dev.host}
Stage Site: ${stage.host}

(上面提到的巨大黑客意味着以编程方式迭代当前项目的配置文件并手动解析每个配置文件的属性,可以在自定义maven插件或Groovy脚本中使用{{3> }})