首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven ->配置文件->激活-所有条件都是必需的还是只有一个条件?

maven ->配置文件->激活-所有条件都是必需的还是只有一个条件?
EN

Stack Overflow用户
提问于 2013-12-18 13:35:44
回答 2查看 2K关注 0票数 7

Configuration:

  • Maven:3.0.5
  • Java:1.6.0_45

Description:

假设我们有如下配置文件的配置:

代码语言:javascript
复制
<profiles>
    <profile>
        <id>profile-1</id>
        <activation>
            <jdk>1.6</jdk>
            <property>
                <name>name</name>
                <value>Hubert</value>
            </property>
        </activation>
    </profile>
    <profile>
        <id>profile-2</id>
        <activation>
            <jdk>1.6</jdk>
            <property>
                <name>name</name>
                <value>Wiktoria</value>
            </property>
        </activation>
    </profile>
</profiles>

我们有两个侧面:配置文件-1和配置文件-2。

当满足两项要求时,配置文件-1应处于活动状态:

代码语言:javascript
复制
 - jdk is version 1.6
 - property _name_ has value _Hubert_ 

问题:

让我们检查一下这个配置:

mvn -Dname=Hubert帮助:活动配置文件

因此,我得到了两个活动配置文件: profile-1和profile-2。

嗯..。

配置文件配置文件-2不应该是活动的,因为属性名的值不同于预期的Wiktoria。

有人能解释一下为什么会这样吗?这是正常的行为吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-18 13:44:33

这里的问题是,带有触发器条件的激活列表与OR连接。他们确实有一张去提供多个激活触发器的票,但还是开着的。这意味着它与您的sdk规则相匹配,该规则是真的,因此是活动的。

代码语言:javascript
复制
<profile>
    <id>profile-1</id>
    <activation> <!-- true || true = true -->
        <jdk>1.6</jdk> <!-- true -->
        <property> <!-- true -->
            <name>name</name>
            <value>Hubert</value>
        </property>
    </activation>
</profile>
<profile>
    <id>profile-2</id>
    <activation> <!-- true || false = true -->
        <jdk>1.6</jdk> <!-- true -->
        <property> <!-- false -->
            <name>name</name>
            <value>Wiktoria</value>
        </property>
    </activation>
</profile>
票数 6
EN

Stack Overflow用户

发布于 2013-12-18 14:42:10

注意:,这只是对查斯莫正确答案的补充。

有一本来自sonatype的书描述了Maven。在奏鸣曲书籍(第5.3.1节)部分,我们可以找到:

当满足所有激活条件时,将激活配置文件。

这不是真的。事实上,有一个条件可以激活配置文件,这当然等于或逻辑条件。此行为在Maven博士中描述:

当满足了一个或多个指定的条件时,激活就会发生。当遇到第一个正结果时,处理停止,配置文件被标记为活动。

这对我来说既不重要,也不十分有用。但在撰写这篇文章时,maven就是这样工作的。

有一张用于和连接的票证MNG-4565。这是标记为Bug,但根据Maven doc,它不是,所以这张票已经打开了近4年。最有用的部分是对这张票的最后评论,这张票是由写的。他的评论指向了这个消息来源:和-激活-配置文件选择器。这会将默认的maven或条件更改为和条件。测试过了。很管用。当然,如果你决定使用这个,你还有一件事要记住。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20659666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档