【问题标题】:what is the most convenient way to build package for different environments?为不同环境构建包最方便的方法是什么?
【发布时间】:2011-12-28 18:19:55
【问题描述】:

我有一个 maven 项目,它在生产和开发环境的属性文件中有完全不同的设置。对吗,最常见的方法是拥有不同的 Maven 配置文件(默认为 dev),它们将在构建过程中打包不同的属性? 有没有其他方法?

【问题讨论】:

    标签: java maven development-environment production-environment


    【解决方案1】:

    是的,这正是配置文件的设计目的。

    您甚至不需要不同的属性文件,您可以从每个profile 中获得one property file that gets filtered with different properties

    【讨论】:

      【解决方案2】:

      配置文件的问题是您需要运行构建的次数与配置文件的次数相同。这意味着如果有五个配置文件(dev、pre-test、pre-live、qa、prod),您需要运行构建五次。我建议采用不同的方式并通过构建直接生成已正确配置的五个工件(通常是战争等)。这可以通过使用我制作的example 来实现,这让生活更轻松。该示例将产生

      【讨论】:

      • 这就是您使用 Jenkins 自动化构建的原因
      • 这不会改变任何东西,因为构建必须运行多次......这不是必需的......如果您只需要运行整个构建一次。
      【解决方案3】:

      还有另一种方法可以将环境依赖项放入环境中,以便从 maven 项目构建单个工件,然后在部署期间提供属性。在这种情况下,maven 对特定环境一无所知。

      例如你可以把-Dmy.config.file=/path/to/env/my.properties的东西放在java命令行或者使用JNDI,或者从数据库中读取属性等等。

      如果您有很多不同的环境或者您对它们一无所知(例如,将.war 应用程序分发给最终用户),这是更可行的方法。

      【讨论】:

      • 不,谢谢,移动所有这些属性数据库或类似的东西相当复杂......创建另一个配置文件更容易......虽然它也有问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多