【发布时间】:2010-12-28 02:28:43
【问题描述】:
请耐心等待,我正在从 Ant 迁移到 Maven2:我认为我已经遇到了在 Ant 中很容易但在 Maven 中并非如此的小事情之一......
我如何处理本地部署与创建存档/捆绑以分发到另一台机器之间的区别?
假设我的项目的输出是一个 EAR 加上一些额外的配置文件。一个积极参与项目的开发人员需要经常部署和重新部署到他的本地应用服务器(比如 JBoss),而一个正在构建的集成工程师对于 QA/生产,只需要创建最终的存档程序集 (tar/gz)。
在 Ant 中,我们为此设置了两个目标:“dev-deploy”和“bundle”。两者都进行了完整的构建,但在最后一步有所不同:“dev-deploy”将 EAR 和配置文件复制到各自的本地文件夹,而“bundle”只是将 EAR 和配置文件放在 tar.gz 程序集中。
你如何在 Maven 中做到这一点?
我已经看到程序集插件可以创建档案(tar、gz 等)或展开目录(来自相同的程序集描述符)。我可以调用 assembly:assembly 或 assembly:directory,但对于后者,如何将最终输出复制到本地 JBoss 部署文件夹?从related post 看来,临时复制文件并不是 Maven 的真正意义所在,因此 antrun 副本可能是最合适的?
最后,由于程序集的类型可能因调用它的人而异,将程序集绑定到构建生命周期似乎并不明智,不是吗?但这意味着开发人员总是需要调用 'mvn package' 后跟 'mvn assembly:directory' 来重建和测试更改。相反,集成工程师将始终需要运行 'mvn package',然后运行 'mvn assembly:assembly' 来创建可分发的存档。我希望为每一个都提供一个命令解决方案,还是应该只编写脚本?
【问题讨论】:
标签: maven-2