首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java EE:需要更好的部署系统

Java EE:需要更好的部署系统
EN

Stack Overflow用户
提问于 2010-03-05 23:26:46
回答 4查看 360关注 0票数 0

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-06 01:33:53

这样做的一个问题是,如果开发人员不向VCS添加新文件,那么该开发人员是唯一能够制作EARS的人,

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

  • 你不能在另一个环境中复制东西,你被绑定到开发者机器上(但你知道这一点)。如果他病了怎么办?
  • 没有版本控制文件意味着你没有任何修改的历史,你不知道你放到生产中的是什么(“嗯,这个版本是什么?等等,让我们打开耳朵来检查一下。”)。
  • 最后但同样重要的是,在硬件故障(例如硬盘崩溃)的情况下,你可以告别所有不在VCS中的东西。

因此,首先要修复的是版本的文件,即使只有一个开发人员,因为单独工作并不能将您从所提到的问题中解救出来。应该提醒这些要点(开发人员需要意识到它们才能理解它们的重要性)。

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

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

要将这样的过程放在适当的位置,您需要使用自动化构建(即,整个构建可以在一个命令中运行),并打破与集成开发环境的依赖。换句话说,不要使用集成开发环境来构建您的EAR,而要使用MavenAnt之类的工具(这些工具与集成开发环境无关)。这将是第二个要解决的问题。

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

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

票数 3
EN

Stack Overflow用户

发布于 2010-03-05 23:30:26

这是我的建议:

  1. 获得更好的集成开发环境- IntelliJ、Eclipse或NetBeans。没有人使用JDeveloper
  2. Have开发人员签入像Subversion或Git这样的中央版本控制系统。
  3. 使用Ant和Cruise control或Hudson设置了一个持续集成工具来自动构建。
票数 3
EN

Stack Overflow用户

发布于 2010-03-05 23:34:09

我们要做的就是使用cruisecontrol。它做了两件事,它让我们进行持续的集成构建,这样我们就有了夜间构建以及每次检查更改时构建的轻量级构建。

我们还使用它来更具体地解决您的问题。当我们想要发布时,我们使用cruisecontrol来启动一个构建,该构建被标记为适当的生产构建版本。它将从我们的版本控制系统(我们使用SVN)获取代码并在此基础上进行构建,因此它不依赖于开发人员的本地环境。

您可能还需要考虑的一件事是创建一个要构建的生产分支。因此,特定版本的生产ears始终是从该分支构建的。这样,您甚至可以对构建中的内容有更多的控制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2387817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档