簡體   English   中英

如何使用配置文件禁用 Maven 安裝和部署階段?

[英]How can I disable Maven install and deploy phases using profiles?

我的 Maven 項目包含 3 個不同的配置文件,dev、stage 和 prod,它們包含不同的配置設置。 如果活動配置文件不是 prod,我想使安裝和部署階段無法執行(或執行但不執行任何操作),以保持開發和階段構建在存儲庫之外。 有沒有辦法做到這一點?

我猜它涉及將 <plugin> 添加到 dev 和 stage 配置文件中,並手動將其綁定到“none”階段或類似的東西。

如果那是您真正想要做的,那么只需在開發和登台上運行“包”階段,在您的 maven 設置文件中,提供的用戶不應該對存儲庫具有寫入權限。

不過,我建議您將配置文件保留在構建工件之外,這樣您就只有一個構建可以在環境之間升級。 作為部署構建腳本的一部分,您可以自動復制正確的設置,獲得類似的效果。

不管您想如何執行此操作是最好的主意,您可以做的是使用Maven Enforcer 插件來驗證profile屬性是否設置為您的“產品”配置文件的值。 該插件默認綁定到validate階段,因此您需要將其綁定到package階段,否則只有“prod”配置文件可用。

我將為此使用的具體配方:

有一個名為requireProperty的內置規則,您可以使用它來對屬性及其值進行斷言。 您可以從您的 prod 配置文件中設置一個屬性,然后(在任何配置文件之外)配置執行器插件以檢查該屬性是否設置為您期望的值。 然而,這是霍基。

我強烈建議您將特定於環境的配置值外部化到屬性占位符中,並僅使用配置文件來設置這些值,而不是切換出特定於環境的配置文件或影響您正在生成的工件的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM