Java,Eclipse,Ant,JUnit,Hudson,SVN,本机库;它们能共存吗?

时间:2010-01-15 00:20:44

标签: java build-process continuous-integration

完成以下所有操作的最佳方法是什么:

  • 在Eclipse中创建项目
  • 使用Apache Ant构建文件
  • Hudson(或其他更推荐的CI系统?)使用
  • 支持由Ant / Hudson和Eclipse
  • 运行的JUnit测试
  • 并检查正确的文件夹结构到SVN,以便将来的开发人员可以复制构建,Hudson可以自动从SVN抓取并运行Ant文件来构建/测试/部署项目
  • 该项目有本机库,如果这有任何区别(我已经编写了一个Ant任务,可以根据操作系统下载和解压缩正确的库文件)

我已经拥有了一些源文件和Ant文件的项目,但是我一直无法以有条理的方式将它与Eclipse集成,所以我真的很想从一个全新的Eclipse项目开始,正确设置它,然后以最兼容Eclipse的方式将我的Ant文件和源文件逐个复制到项目中。

我会继续玩弄一切,试图让它按照我喜欢的方式运作。但如果你有这方面的经验,也许在你的工作场所,请尽可能多地提供信息。

我的主要目标是学习一次并在未来的项目中使用它。目前,我正在开发一个客户端 - 服务器应用程序,它包含一个JOGL applet前端(使用JNLP文件)和一个无人参与的服务器应用程序。到目前为止,我一直在手工完成:在Eclipse中编写和构建,将applet jar拖到我的FTP客户端,SSH服务器jar并手动重启,所有这些都没有测试过程。我希望到最后,构建过程将是这样的:在我的机器上本地测试,带有本机库的副本;提交代码更改为SVN; Hudson svn update使用Ant构建文件来编译和运行所有JUnit测试;如果所有测试都通过,它会将服务器jar复制到我的专用服务器并重新启动正在运行的服务器实例,然后将客户端jar复制到我的Web服务器。

3 个答案:

答案 0 :(得分:2)

当我开始一个新项目时,我通常会采取以下步骤:

  1. 使用Java项目向导在Eclipse中创建一个新的Java项目,并选择将源文件和类文件保存在不同的目录中('src'和'class')
  2. 使用您想要的包结构在Eclipse中设置项目
  3. 使用普通的/ trunk / / branches / / tags /设置为项目创建一个新的存储库(或存储库中的文件夹)
  4. 使用您的SVN客户端,将为项目创建的项目文件夹Eclipse的内容(在'src'和'class'目录所在的级别)导入存储库的主干
  5. 确认所有内容都在Subversion中(检查后备箱到新位置)
  6. 使用Eclipse删除项目(以及磁盘上的文件)
  7. 使用来自SVN的Checkout项目向导,使用存储库的主干
  8. 创建一个新项目
  9. 创建Ant脚本,确保项目正确构建,并将Ant脚本添加到存储库
  10. 现在,来自哈德森:

    1. 创建新作业并将Subversion URL设置为存储库的根目录
    2. 添加一个将使用Ant的构建集(我总是必须安装我自己的Ant版本并确保它已正确配置以使其工作)并将调用您的Ant脚本
    3. 使用“立即构建”查看作业是否正确构建
    4. 您可以在构建脚本中从Ant调用JUnit测试(首先使用javac任务编译它们,然后使用junit任务运行它们。如果你要求,Hudson会跟踪测试结果。

      您可以使用shell脚本构建步骤将服务器jar复制到需要的位置,然后重新启动服务器实例。就像Mnementh所说,听起来你已经对原生图书馆进行了排序......

答案 1 :(得分:1)

如果您不喜欢使用ant,并准备使用Maven,那么只需使用Eclipse plugin设置Maven就能为您生成Eclipse项目。

Hudson已经知道如何构建Maven项目,因此需要处理。

只要您可以将项目拉入eclipse,那么它就可以运行单元测试,而hudson也可以使用前面提到的maven支持来运行单元测试。

如果你使用Maven,那么你会想要遵循它关于如何创建项目的指导,here是一个很好的起点。

希望这有帮助。

答案 2 :(得分:1)

在我们公司,我们实际上使用Eclipse,Java,Ant,SVN,Junit和Hudson。除了原生库之外,这就是你所提到的。如果你说你的ant-buildscript已经与本地库一起工作,问题似乎也解决了。要将它很好地集成到eclipse中,你可以通过两种方式实现它:使用来自Eclipse的Ant(有缺点)或开发人员必须正确地为他的机器安装本机库,这样Eclipse可以毫无问题地编译并且可以持续集成它将由Ant下载。