我有一个maven项目,它在生产和开发环境的属性文件中具有完全不同的设置。是不是,最常见的方法是使用不同的maven配置文件(默认情况下为dev),它将在构建过程中打包不同的属性? 还有其他办法吗?
答案 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
应用程序),这是更可行的方法。