繁体   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