使用CI/Hudson支持为多个环境[prod,test,dev]生成工件的Maven最佳实践?

use*_*682 17 maven-2 maven maven-assembly-plugin

我有一个项目需要部署到多个环境(prod,test,dev).主要区别主要在于配置属性/文件.

我的想法是使用配置文件和覆盖来复制/配置专用输出.但是如果我必须使用专门的分类器生成多个工件(例如:"my-app-1.0-prod.zip/jar","my-app-1.0-dev.zip/jar")或者我应该为每个环境创建多个项目,一个项目?!
我应该使用maven-assembly-plugin为每个环境生成多个工件吗?无论如何,我需要一次生成所有这些,所以它接缝的配置文件不适合...仍然困惑:(

任何提示/示例/链接都将受到欢迎.

作为一个侧面问题,我也想知道如何在CI Hudson/Bamboo中实现这一点,以便为所有环境生成和部署这些生成的工件,并将其部署到适当的服务器上(例如:使用SCP Hudson插件)?

Chr*_*ava 10

我更喜欢将配置文件与应用程序分开打包.这允许您运行EXACT相同的应用程序并在运行时提供配置.它还允许您在事实之后为您在构建时不需要的环境生成配置文件.例如CERT我使用"汇编"工具将每个域的配置文件压缩成命名文件.


Pas*_*ent 2

我将使用该version元素(如 1.0-SNAPSHOT、1.0-UAT、1.0-PROD),从而将 VCS 级别的标签/分支与配置文件(针对环境特定的内容,如机器名称、用户名密码等)结合使用来构建各种文物。