【问题标题】:Maven - Profile Depending on Property?Maven - 配置文件取决于属性?
【发布时间】:2022-01-23 00:28:55
【问题描述】:

我在下面有以下配置文件,而不是使用 activeByDefault 我想通过一个属性来激活它。我顺便看到了这条评论(https://stackoverflow.com/a/18890159/1959534),说可以通过 maven 程序集插件来做到这一点,但我不知道如何指定它。关于如何实现这一点的任何意见?

<project ...>
   ...
   <profiles>
      <profile>
         <id>myProfile</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <dependencies>
            <dependency>
               <!-- Extra dependency just for this profile -->
            </dependency>
         </dependencies>
      </profile>
   </profiles>
</project>

【问题讨论】:

  • 您能解释一下为什么您将个人资料用于什么目的?完整的 pom 文件和您想要实现的描述会很有帮助。
  • 它很长并且与业务相关,所以我不能直接分享它,但我已经更新它以包含尽可能多的我的 pom。我想要完成的是通过切换 pom.xml 中的属性来控制构建中是否包含依赖项。通过切换 activeByDefault 的值,此当前设置在一定程度上起作用。但据我所知,您无法通过属性定义布尔值,因此我需要一种解决方法来做到这一点或从不同的角度解决问题。
  • 通过属性控制依赖是完全错误的。问题是为什么?
  • 是的,我知道在这个意义上它是不受欢迎的。但是从我读过的内容来看,配置文件特定的依赖项应该没问题。无法回答我为什么需要此设置,抱歉!
  • 为什么是关键部分。因为我认为您对使用此类设置的假设是错误的。 (有几个人写这样的东西并不意味着这是一个好主意)......

标签: maven maven-plugin maven-profiles


【解决方案1】:

想通了! 在项目的 /.mvn/jvm.config 中定义了一个系统变量,然后将激活步骤更改为通过属性而不是 activeByDefault。然后使用这个技巧将配置扔到我的 .properties 文件中:https://stackoverflow.com/a/14386303/1959534

jvm.config

-Dmy.property=true

pom.xml

<profiles>
   <profile>
      ...
      <activation>
         <property>
            <name>my.property</name>
            <value>true</value>
         </property>
      </activation>
   </profile>
</profiles>

【讨论】:

    猜你喜欢
    • 2011-11-11
    • 2017-01-24
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多