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

Java、Eclipse、Ant、JUnit、Hudson、SVN、本机库;它们都能共存吗?,java,build-process,continuous-integration,Java,Build Process,Continuous Integration,实现以下所有目标的最合适方法是什么: 在Eclipse中创建项目 使用ApacheAnt构建文件 哈德逊(或其他更推荐的CI系统?)使用的 以及对由Ant/Hudson和Eclipse运行的JUnit测试的支持 并将适当的文件夹结构检查到SVN中,以便未来的开发人员可以复制构建,Hudson可以自动从SVN中获取并运行Ant文件来构建/测试/部署项目 如果这有什么区别的话,这个项目有本机库(我已经编写了一个Ant任务,它可以根据操作系统下载和解压适当的库文件) 我的项目已经有了一些源文件和

实现以下所有目标的最合适方法是什么:

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

我的项目已经有了一些源文件和Ant文件,但我在以有组织的方式将其与Eclipse集成时遇到了困难,因此我非常希望从一个全新的Eclipse项目开始,正确地设置它,然后以最兼容Eclipse的方式将我的Ant文件和源文件逐段复制到项目中

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


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

如果您不习惯使用ant,并且准备好了使用,那么只需设置Maven即可为您生成Eclipse项目

Hudson已经知道如何构建Maven项目,因此这一点得到了关注

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

如果您使用Maven,那么您将希望遵循它关于如何创建项目的指导原则,这是一个很好的起点


希望这能有所帮助。

在我们公司,我们实际上使用了Eclipse、Java、Ant、SVN、Junit和Hudson。除了本机库之外,您只提到了这些。如果您说您的ant构建脚本已经可以使用本机库,那么这个问题似乎也解决了。要将它很好地集成到eclipse中,您可以通过两种方式来实现:也可以使用eclipse中的Ant(有缺点),或者开发人员必须为他的机器正确安装本机库,以便eclipse可以毫无问题地编译,并且为了持续集成,它将由Ant下载。

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

  • 在Eclipse中创建一个新的Java项目,使用Java项目向导并选择将源文件和类文件保存在单独的目录中('src'和'class'))
  • 使用所需的包结构在Eclipse中设置项目
  • 使用普通/trunk//branchs//tags/setup为项目创建新存储库(或存储库中的文件夹)
  • 使用您的SVN客户端,将Eclipse为项目创建的项目文件夹的内容(在“src”和“class”目录所在的级别)导入到存储库的主干中
  • 确认Subversion中的所有内容都正确(将主干签出到新位置)
  • 使用Eclipse删除项目(以及磁盘上的文件)
  • 使用存储库的主干,使用“从SVN签出项目”向导创建新项目
  • 创建Ant脚本,确保项目构建正确,并将Ant脚本添加到存储库中
  • 现在,来自哈德逊:

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


    您可以使用shell脚本构建步骤将服务器jar复制到需要的位置,然后重新启动服务器实例。正如Mnementh所说,听起来您已经对本机库进行了排序…

    类似但不完全重复:对不起,我绝对不想使用Maven。我已经做了一次很好的尝试,我认为它过于复杂,不够灵活。然后,在阅读各种各样的博客文章时,我看到许多其他人也有同样的想法。在我的Ant项目中,我有点模仿Maven的文件夹结构,但我不想与Maven有任何关系。希望这个答案能帮助其他对Maven感兴趣的人!您模仿maven,并设法完成maven在ant/anttasks中所做的一切。我用maven和它的mojos来满足所有这些需求。在我看来,你对maven的开始很糟糕,现在唯一让你无法完成这些要求的是你对maven的感觉。。。