maven-2 - 使用 Maven 进行多部署环境(生产/开发)

标签 maven-2

我在 Maven 中有一个 Web 应用程序,具有默认的目录结构。那里没问题。 默认目录结构有一些指向我的本地主机数据库的属性文件。

目前我创建一个 Ant 脚本来创建不同的 war 文件 - 一个用于生产,一个用于开发,使用以下命令:

ant deploy-dev
ant deploy-prod
ant deploy-sit
ant deploy-uat

所以基本上他们创建一个 war 文件,然后通过插入属性文件来更新 war 文件

maven中有类似的东西吗(根据配置创建不同的war)?

如果是这样,我该怎么做?

我尝试了mvn war但它只是引发了一场 war

最佳答案

仅供引用,最佳实践是不必为不同的环境重建工件 - 因为这不会导致可重新生成的构建,并且重建时其他事情可能会发生变化。 IE。如上所述,使用资源过滤仅在重新构建项目时有效。

当您将一个工件从开发阶段转移到测试阶段或从验收测试阶段转移到生产阶段时 - 您不想必须重建。

您想要做的实际上是让您的配置动态化,依赖于运行时变量。 IE。针对不同环境的不同 Spring 设置或属性文件,例如:

db-dev.properties
db-test.properties
db-prod.properties

然后你可以使用运行时变量和Spring的PropertyPlaceholderConfigurer在这些配置之间切换。 .

您实际上也可以使用不同的 spring 配置文件,就像我过去所做的那样,进行更复杂的设置。

我还建议您将“默认”设置保留为生产环境 - 这样,如果您部署到生产环境,则无需担心忘记设置环境变量。

关于maven-2 - 使用 Maven 进行多部署环境(生产/开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1149352/

相关文章:

maven-2 - 为什么我不能从另一个配置文件激活 Maven2 配置文件?

web-services - 使用 axis 和 maven 访问 Web 服务

maven-2 - 如何将其他模块的资源复制到指定位置? ( maven )

maven-2 - Maven 校验和 pom 设置?

java - 使用 Maven 进行 Selenium RC 测试

deployment - 部署 Maven 项目

java - 帮助我理解如何使带有非 Maven jar 依赖项的 Maven 项目可供其他人使用

linux - 如何为maven设置路径

maven-2 - 在 Maven 中共享测试代码

maven-2 - 在 Maven 2 中定义自定义生命周期阶段