Maven:根据localRepository属性激活配置文件?

时间:2011-09-06 13:53:19

标签: maven profile activation pom.xml

Maven中的

我想只在工件尚未安装到存储库时才执行构建。我的想法是使用默认情况下处于非活动状态的配置文件,但如果工件丢失则会激活。 到目前为止,我没有成功,因为似乎Maven属性不能用于配置文件激活?

的settings.xml:

...
<localRepository>/local/m2repo</localRepository>
...

1)这有效:

的pom.xml:

...
<profile>
    <id>my-profile</id>
    <activation>
        <activeByDefault>false</activeByDefault>
        <file>
            <missing>/local/m2repo/something</missing>
        </file>
    </activation>
    ...
</profile>

2)这不起作用:

的pom.xml:

...
<profile>
    <id>my-profile</id>
    <activation>
        <activeByDefault>false</activeByDefault>
        <file>
            <missing>${settings.localRepository}/something</missing>
        </file>
    </activation>
    ...
</profile>

3)这也不起作用:

的settings.xml:

...
<properties>
    <local.repository>${settings.localRepository}</local.repository>
</properties>
...

的pom.xml:

<profile>
    <id>my-profile</id>
    <activation>
        <activeByDefault>false</activeByDefault>
        <file>
            <missing>${local.repository}/something</missing>
        </file>
    </activation>
</profile>

是否有某种解决方法或替代方法,我可以检查我的工件是否存在,并且只在必要时才运行构建? 谢谢你的任何想法!

1 个答案:

答案 0 :(得分:0)

你做不到。

激活文件位置通常与当前项目文件夹相关。

只有在已定义配置文件并开始构建之后,才会计算属性。