我必须使用不同的log4j.xml和属性文件,这些文件将在Dev和Production中使用。我正在使用maven进行建筑和包装。有没有办法让maven在POM中通过可配置的maven属性选择dev或prod,或者传递一个运行时变量?
谢谢, 阿比
答案 0 :(得分:6)
基于Maven中的配置文件的想法不是最好的,因为这会迫使你运行你的构建几次,这意味着如果你有两个环境,你必须运行你的构建两次,如果你有更多只是考虑这个。 最好的解决方案是使用Maven-Assembly-Plugin在一个步骤中为不同的环境创建一组工件,这些工件将由分类器区分。我已经做了一个完整的例子here。
答案 1 :(得分:2)
是的,请使用Maven profiles。
使用POM本身可用元素的子集(加上一个额外部分)指定配置文件,并以各种方式触发。它们在构建时修改POM,并且用于在补充集中为一组目标环境提供等效但不同的参数(例如,提供开发,测试和应用程序根目录的路径)生产环境)。
答案 2 :(得分:2)
作为profiles的替代方案,允许您在构建过程中选择 “dev”或“prod”,您可以考虑使用maven-assembly-plugin以便您每次构建时都可以构建“dev”和“prod”程序集。