繁体   English   中英

Java EE 5开发环境

[英]Java EE 5 Development Environment

我有一个已经在生产中拥有一些应用程序的客户,因此已经就下一个项目的生产环境做出了一些决定:

  • Sun iPlanet 6.1 SP7(带Apache)
  • JDK 1.6
  • Oracle Weblogic 10 MP3
  • 甲骨文10g
  • 1024位SSL

他们还具有一些针对Web应用程序的公司标准:

  • 雄猫
  • 支柱
  • 与Safari,Firefox,IE6,IE7的兼容性

我还被告知,此应用可能将不需要完整的Java EE 5环境(可能仅是一个Web容器),但需要通过客户端EJB等与托管在单独的weblogic实例上的一个通信,并执行各种Web服务呼叫其他公司服务。

我的任务是就这个新团队(包括我在内的大约2至3人,规模很小,但未来几个月可能会增长)做出一些决策,以决定我们的开发和测试环境。 我想创建一个人们可以使用他们喜欢的IDE并在localhost上拥有良好开发经验的平台,但是仍然可以顺利地在测试环境中部署,然后再到生产环境。 我的想法是,在本地工作站上使用http很好,但是集成测试服务器应该看起来与生产服务器完全一样,并且所有流量都应为https,以确保我们对产品的准确描述。

知道开发人员的本地工作站将千差万别,并且可能在其本地工作站上运行Mac OS X 10.6(Snow Leopard)或Windows 7,但是还需要指定一个通用的测试服务器:什么技术堆栈可以为我们提供帮助从本地开发,测试到生产的一条很好的顺利道路?

编辑:抱歉,当我说技术堆栈时,我的意思是例如Ant + JBoss + Tomcat + Oracle XE与Maven + Geronimo + Derby。 基本上,我们将需要在每台开发机和测试服务器上安装的具体规范实现的列表,这为我们提供了灵活的开发环境,以及向测试和生产环境的平稳过渡。

EDIT2:这也许值得一提的是这款应用程序,如果它需要坚持在所有的任何信息(我假设是这样),不管它是绝对不会复杂。 它极有可能类似于基本产品数据库。

我会去:

  1. 哈德逊 (Hadson)每晚进行建造(或每次登机)
  2. 使用MercurialSubversion进行源代码控制(在Windows和Mac上都很好用)
  3. 春天,春天,春天 是的,我是认真的,Spring解决的问题不仅仅是依赖注入。 例如安全性,批处理,交易处理,系统集成。
  4. EclipseLink for ORM。 它具有许多高级功能(Hibernate缺乏)经常为我省钱(例如体面的存储过程支持)。
  5. 轻巧的容器,例如Jetty,TomcatResin 如果您使用GeronimoJBoss之类的慢速工具,您将犯下团伙杀人罪。
  6. DeltaWalker的合并/差异工具(同样适用于所有平台)。
  7. 如果要使用高级数据库功能,请使用OracleXE (和SQLDeveloper )。 两者都是不错的工具。 如果没有,那么像H2Derby之类的灯就可以了。
  8. JUnit (或TestNG)Mockito用于单元测试/ 模拟
  9. 请不要使用Struts 认真地说,至少要使用Struts2或最好使用JSF2,StripesGWT之类的东西。
  10. JTrac,RedMineFogBugz这样的体面的bugtracker
  11. 用于集成测试
  12. 声纳的代码质量

如果您要使用不同的IDE,那么Maven可能是个好主意,因为它允许从pom.xml配置每个IDE(在IntelliJ / NetBeans中运行良好)。 但是我能给你的最好的建议就是这个。

  • 继续使用您已经知道并有经验的东西。 您不会在一夜之间从Struts迁移到JSF2。
  • 获得最好的工具,免费的东西并不总是可行的(尽管经常如此)。

快乐黑客

当您说“技术堆栈”时,您实际上到底在问什么,这是服务器,库,构建工具吗? 无论如何,这里有一些轻率的建议:

  • 哈德森进行持续整合
  • 除非确实需要,否则请避免使用Maven。 它以声明式依赖和约定优于配置的方式诱使您像警笛,但实践与理论大相径庭
  • 尽可能使用Spring优先于标准Java SE / Java EE API。 除了更简单的API,它还促进了可测试性和AOP功能,这比直接使用AspectJ容易得多。 当然,它也提供依赖注入,支持松散耦合
  • 对于ORM来说是Hibernate,或者如果您的持久性要求非常简单,那么Spring-JDBC可能就足够了

测试环境应完全复制生产。 也可以在测试环境中进行性能测试。如果需要考虑硬件,并且需要限制群集中的服务器数量,则在测试中创建更少的服务器,但是要复制与产品相同的环境,即iplanet(apache )+ weblogic + oracle db等等。

就本地环境而言,您可以使用Tomcat(仅需要Web容器),对于ejb客户端,您可以捆绑jar并进行远程调用(如果您要对某个远程应用程序进行远程调用)。通过本地ejbs拨打本地电话,那么您将不得不在本地开发箱中使用weblogic进行开发。

尝试使用相同的IDE(尽管多数情况下由开发人员选择)。就操作系统而言,这无关紧要,因为如果您使用兼容的IDE,则只能从中构建代码。

还要确保IDE与tomcat(如果使用)或weblogic紧密结合,以便在调试模式下运行代码。

一个非常重要的事情是,首先确定代码结构,然后在版本控制中进行检入,以便用户从任何方面都可以检入/检出同一结构。因此,所有开发人员都可以共享同一结构。 在每个发行版中将代码分支到cvs或版本控制中,然后从head中检出。同样重要的是使用一个构建文件并维护一个安装文档以在本地机器上构建环境。 另外,关于要使用的Framework,请选择最适合您在编码和维护方面使用的框架,这样可以减少代码中的错误数量。当今大多数人使用Spring / Hibernate组合,但这取决于它是否适合您的项目。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM