一千萬個為什麽

搜索

即使另一個配置文件被激活,如何保持activeByDefault的Maven配置文件處於活動狀態?

我在我的pom.xml中有一個配置文件,它應該始終處於活動狀態,除非它被明確禁用(-P!firstProfile)。 我通過使用activeByDefault標誌解決了這個問題:


  
    firstProfile
    
      true
    
    ...
  

現在在同一個pom.xml中我定義了第二個配置文件,只有在配置文件被激活時才應該激活(-P secondProfile)。 因此默認行為是:firstProfile active,secondProfile inactive。 在其他一些方面,除了第一個配置文件之外,我還想激活第二個配置文件。 現在的問題是,如果我使用“-P secondProfile”執行此操作,則不幸的是,firstProfile會被停用。 Maven文檔說明了這一點:

...   此個人資料將自動生效   所有版本都有效,除非另一個   激活同一POM中的配置文件   使用前面描述的一個   方法。所有活動的配置文件   默認情況下是自動的   在POM中的配置文件時停用   在命令行上激活或   通過其激活配置。   ...

是否有某種可能性如何保持firstProfile始終處於活動狀態(無需在settings.xml中聲明它)?

最佳答案

一個技巧是避免 activeByDefault ,而是通過缺少屬性來激活配置文件,例如:


  
    firstProfile
    
      
        !skipFirstProfile
      
    
    ...
  

然後,您應該可以使用 -DskipFirstProfile 停用配置文件 或者使用 -P!firstProfile ,否則配置文件將處於活動狀態。

See: Maven: The Complete Reference, Profile Activation - Activation by the Absence of a Property

轉載註明原文: 即使另一個配置文件被激活,如何保持activeByDefault的Maven配置文件處於活動狀態?