为不同环境构建软件包最方便的方法是什么?

时间:2011-11-14 15:32:25

标签: java maven development-environment production-environment

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

E.g。你可以在java命令行中放置一些-Dmy.config.file=/path/to/env/my.properties,或者使用JNDI,或者从数据库中读取属性,等等。

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