javaee:需要更好的部署系统
我们目前正在使用JDeveloper来构建生产环境。这样做的一个问题是,如果开发人员不向VCS添加新文件,那么该开发人员是唯一能够制作EAR的开发人员,因此他也可以使用未版本的文件
一个好的系统可以将此分离开来,以便在不依赖本地开发人员工作区的情况下正确生成EAR文件(这还可以确保他们在允许进行部署/签入之前将文件添加到VCS)
你可以在下面搜索框中键入要查询的问题!
我们目前正在使用JDeveloper来构建生产环境。这样做的一个问题是,如果开发人员不向VCS添加新文件,那么该开发人员是唯一能够制作EAR的开发人员,因此他也可以使用未版本的文件
一个好的系统可以将此分离开来,以便在不依赖本地开发人员工作区的情况下正确生成EAR文件(这还可以确保他们在允许进行部署/签入之前将文件添加到VCS)
# 1 楼答案
以下是我的建议:
# 2 楼答案
如果开发人员不使用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)
# 3 楼答案
与其从开发人员工作区进行构建,不如安装Maven,让Hudson之类的东西运行Maven构建。这个构建(您的ear)的工件得到部署
# 4 楼答案
我们所做的是使用cruisecontrol。它可以做两件事,它允许我们进行持续的集成构建,这样我们就可以进行夜间构建以及轻量级构建,每次检查更改时都可以进行构建
我们还使用它来更具体地解决您的问题。当我们想要发布时,我们使用cruisecontrol启动一个构建,该构建被标记为正确的生产构建版本。它将从我们的版本控制系统(我们使用SVN)获取代码,并在此基础上构建,因此它不依赖于开发人员本地环境
你可能还想考虑的一件事是创建一个生产分支。因此,特定版本的产品耳始终是从该分支构建的。这样,您甚至可以更好地控制构建中的内容