JavaEE : Need better deployment system

标签 java deployment jakarta-ee build-process

我们目前正在使用 JDeveloper 来构建我们的生产 EAR。这样做的一个问题是,如果开发人员不向 VCS 添加新文件,那么该开发人员是唯一能够制作 EARS 的人,因此他也可以使用未版本化的文件。

什么是一个好的系统来将其分开,以便可以正确生成 EAR 文件而不依赖于本地开发人员工作区(这也将确保他们在允许进行部署/检查之前将其文件添加到 VCS)中)。

最佳答案

One problem with this is that if the developer doesn't add new files to a VCS, then that developer is the only one capable of making EARS,

如果开发人员不使用 VCS,这不是您唯一的问题:

  • 您无法在另一个环境中重现事物,您被绑定(bind)到开发人员计算机(但您知道这一点)。如果他生病了怎么办?
  • 不对文件进行版本控制意味着您没有任何修改历史记录,并且您不知道将哪些内容投入生产(“嗯,这个版本中有什么?等等,让我们打开 EAR 来检查一下。”) .
  • 最后但并非最不重要的一点是,如果发生硬件故障(例如硬盘驱动器崩溃),您可以告别 VCS 中未包含的所有内容。

因此,要解决的第一问题是始终版本文件,即使只有一个开发人员,因为单独工作并不能避免您遇到上述问题。这些要点需要提醒(开发者需要意识到它们以了解它们的重要性)。

为了确保这种情况发生,您实际上不应该依赖开发人员机器来构建 EAR,而应该依赖作为引用的“外部”进程。您想避免这种综合症:

alt text http://img716.imageshack.us/img716/9901/worksonmymachinestarbur.png

要实现这样的流程,您需要自动化构建(即整个构建可以在一个命令中运行)并打破与 IDE 的依赖关系。换句话说,不要使用 IDE 来构建 EAR,而是使用类似 Maven 的工具。或Ant (与 IDE 无关)。这将是第二要解决的问题。

一旦您实现了构建过程的自动化,您就可以更进一步并连续运行它:这称为 Continuous Integration (CI) 并允许获得关于变更的频繁、最好是即时的反馈(以避免大爆炸集成问题)。这将是要解决的第三问题。

鉴于您的实际工具集(远非理想,您正在使用的工具没有太多社区支持),我的建议是使用 Ant(或 Maven,如果您对此有一定的了解)进行构建和Hudson用于持续集成(因为它非常容易安装和使用,并且它有一个 Dimensions plugin )。

关于JavaEE : Need better deployment system,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2387817/

相关文章:

java - 将数据发送到父 Activity

java - 如何获取Vaadin 7应用服务器IP和端口?

java - 如何使用 Arquillian - Java EE 7 测试登录/身份验证

node.js - PM2 (Node.js) 部署 - 主机 key 验证失败

php - 通过 FTP 自动将更改部署到网站(使用 Mercurial)

Java的Queue不能指定有限的大小,那么 "add"和 "offer"有什么区别

spring - 如何在 Prod/Dev 环境中处理 CORS URL?

java - 是否可以使用 PowerMock 来模拟新文件的创建?

c# - WCF 中 MSI 包的自动更新

java - 单击超链接调用 servlet