Maven:如果配置文件 B 未激活,则仅激活配置文件 A?

发布于 2024-12-03 15:45:12 字数 841 浏览 0 评论 0原文

我有两个 Maven 配置文件 profile-A 和 profile-B。仅当“A”未激活时才应激活“B”。 因此,如果我调用

mvn install

配置文件 B,则执行该配置文件(但不执行配置文件 A)。 但如果我调用

mvn install -Pprofile-A

,则仅执行配置文件 A(但不执行配置文件 B)。

有什么提示我需要如何编写 pom.xml 来实现此目的吗?

我已经尝试过这个,但它不起作用:

<profiles>
  <profile>
    <id>profile-A</id>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
    ...
  </profile>

  <profile>
    <id>profile-B</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <property>
        <name>!profile-A</name>
      </property>       
      ...
    </activation>
    ...
  </profile>
</profiles>

I have two Maven profiles profile-A and profile-B. "B" should only be activated if "A" is not activated.
So if I would call

mvn install

profile-B is executed (but not profile-A).
But if I would call

mvn install -Pprofile-A

then only profile-A is executed (but not profile-B).

Any hints how I need to write my pom.xml to achieve this?

I already tried this, but it doesn't work:

<profiles>
  <profile>
    <id>profile-A</id>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
    ...
  </profile>

  <profile>
    <id>profile-B</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <property>
        <name>!profile-A</name>
      </property>       
      ...
    </activation>
    ...
  </profile>
</profiles>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦境 2024-12-10 15:45:12

我认为为了让您的示例命令行按预期工作,您所需要的只是配置文件 B 的 true

。 org/guides/introduction/introduction-to-profiles.html" rel="noreferrer">http://maven.apache.org/guides/introduction/introduction-to-profiles.html 指出:

当 POM 中的配置文件通过命令行或通过其激活配置激活时,默认情况下处于活动状态的所有配置文件都会自动停用。

I think for your example command line to work as expected, all you need is the <activeByDefault>true</activeByDefault> for profile B.

http://maven.apache.org/guides/introduction/introduction-to-profiles.html states:

All profiles that are active by default are automatically deactivated when a profile in the POM is activated on the command line or through its activation config.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文