50
|
Titi Wangsa bin Damhore · 技术社区 · 15 年前 |
1
67
仅供参考的最佳做法是 不 必须为不同的环境重建工件,因为这不会导致可重新生成的构建,并且在重建时其他事情可能会发生变化。如上文所述,使用资源筛选仅在以下情况下有效: 重建 你的项目。 当你从开发人员到测试人员或验收测试到生产人员,你 不 想要重建。 您想要做的,实际上是让您的配置是动态的,依赖于运行时变量。即不同环境下的不同弹簧设置或属性文件,例如:
然后您可以使用运行时变量和Spring在这些配置之间切换 PropertyPlaceholderConfigurer . 实际上,您也可以使用不同的Spring配置文件,就像我以前所做的那样,用于更复杂的设置。 我还建议您将“默认”设置保留为生产-这样,如果您部署到生产环境中,如果忘记设置环境变量,则无需担心。 |
2
61
我更喜欢在这种情况下使用Maven配置文件。 例如,我们有目录结构: src/main/resources | +- local | | | `- specific.properties +- dev | `- specific.properties 在pom.xml中定义两个配置文件:
在这种情况下,我不需要每次为新文件更新pom.xml。在IDE中,只需切换配置文件,或者使用命令行中的-p标志。 UPD :如果配置的某些属性相同,该怎么办? 配置如下:
公用部分将存储在
|
3
18
如果您想从您的流程中删除Ant,我将研究使用带有过滤器的构建概要文件。 在这个场景中,将属性文件插入到src/main/resources树结构中。然后使用如下筛选器属性参数化属性文件:
然后在src/main/filters内部根据配置文件创建过滤器文件。因此,您可以拥有dev-filters.properties sit-filters.properties等。这些内容包括:
然后,为每个设置了
然后您只需使用每个配置文件构建应用程序。您必须为每个概要文件调用构建,但它工作得很好。 POM中的一些设置示例:
还有,这个的道具 blog post 这就是我最初发现实现这一目标的步骤。 |
4
6
我使用Spring的PropertyPlaceholderConfigurater处理了这个问题,包括类路径上的属性文件和文件系统上的属性文件:
如果应用程序启动(或运行测试等)时当前目录中有myapp*.properties文件,它将覆盖来自烘焙到war/ear/whatever中的文件的属性。 |
5
4
有 this article 关于Maven 2的使用 build profiles .看起来它只是通过antrun插件以任何方式委托给Ant,这样您甚至可以避免重新使用现有的build.xml文件。 |
6
1
这很清楚,使用了@seth提到的构建配置文件- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html |