使用 Maven 管理 Seam 项目

在学会用 Maven 之后,有一种要将所有项目都使用 Maven 管理的冲动,当然 Seam 项目也不例外。之前曾花过一天的时间,尝试将使用 EJB 的 Seam 项目使用 Maven 进行管理。结果很不理想,虽然理论上可行,但是项目结构过于复杂。除了要建立根项目外,还要在根项目下建立3个模块:分别是 EAR 模块、EJB 模块和 WAR 模块,而且在部署的时候老出错。没办法,使用 EJB 的 Seam 项目的包依赖关系太复杂了,而且 JBoss 使用起来也比 Tomcat 麻烦。同时,Maven 的 POM 文件写起来也很麻烦。所以,最后还是放弃了这个念头。

 

        在那次不成功的尝试之后,我曾反思了一下。其实,对于使用了 EJB 的 Seam 项目而言,完全使用 Maven 并不是一个太好的选择。比较实际的做法是使用 Maven 管理依赖的类库,构建和部署则使用 Ant 来完成。不过,我的这个想法并没有实现。

 

        最近,在看 Java EE 领域技术新变化的相关文章的时候,我发现自己犯了一个比较根本的问题,为什么 Seam 的项目一定要和 EJB 扯上关系。虽然 Seam 的一个最主要,也是最大的贡献就是很完美地将 JSF 和 EJB3 结合了在一起,但这并不意味着 Seam 项目就一定要用 EJB3 (这个问题其他人可能都看明白了,只有我比较愚钝)。其实 Seam 为 POJO 提供了很多 EJB3 的特性,这里我就不一一列举了,文档和《Seam in Action》那本书里都有。对于是否使用 EJB 这个问题,我的观点是先要了解 EJB 都能提供哪些 POJO 不能提供的特性,除非非常必要,否则不要使用 EJB。

 

       仔细看看 Seam 提供的例子,有哪些非得要用 EJB3(对于这个问题,欢迎大家讨论)。至少 Booking 那个不用吧,Seam 里的那个 Hibernate 例子也使用了去掉 EJB 的 Booking 例子。

 

       不过,在 Java EE 6 推出之后,使用 EJB 将变得更加简单。具体内容可以看我另一篇文章:《EJB 3.1 会给我们带来什么 》呵呵

 

       说了这么多,该说正题了。去掉 EJB 的 Seam 项目很容易用 Maven 管理,不就是一个 WAR 项目嘛。DZone 上有一篇关于 Seam 与 Maven 的文章。不过这篇文章里提到的例子太简单,所以我自己拿 Seam 里的那个 Hibernate 例子为基础,试着用 Maven 管理。实际上很简单,基本上就是配置类库就行了。但是如果不做的话也不知道是简还是繁,毕竟有些东西实际做了才会发现。

 

       具体内容没什么太多值得说的,我直接把代码放上来好了。

你可能感兴趣的:(maven,ejb,项目管理,配置管理,seam)