在学会用 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 管理。实际上很简单,基本上就是配置类库就行了。但是如果不做的话也不知道是简还是繁,毕竟有些东西实际做了才会发现。
具体内容没什么太多值得说的,我直接把代码放上来好了。
分享到:
相关推荐
Apache Maven 3.8.1-bin.zip是Maven的最新稳定版本,它极大地简化了Java项目的构建过程,通过使用XML格式的配置文件来管理项目依赖、构建生命周期和插件。 **Ant** 是Apache软件基金会的另一个项目,它是Java平台上...
这个组合充分利用了Maven的项目管理和构建能力,Jetty的轻量级服务器特性,Seam的Java EE集成框架,以及Hibernate的持久层解决方案,为开发者提供了一个高效、便捷的开发平台。 **Maven**是Apache软件基金会开发的...
Seam-gen 是一款用于快速生成基于 Seam 框架的基础项目结构的工具,它通过简单的命令行交互式过程,帮助开发者构建项目的雏形,并且能够根据数据库信息自动生成管理数据库的 CRUD(Create, Read, Update, Delete)...
2. **配置文件**:如`pom.xml`(Maven项目配置)、`jboss-seam.properties`(Seam配置)、`faces-config.xml`(JSF配置)和`ejb-jar.xml`(EJB配置)等。 3. **测试代码**:可能包含单元测试和集成测试,帮助验证...
这个项目可能是为了演示如何在Eclipse集成开发环境中设置和运行一个包含Seam、EJB和JSF组件的应用程序。下面将详细解释这些关键概念和技术。 **Seam框架**:Seam是一个全面的Java EE开发框架,它简化了企业级应用的...
6. **Seam配置**:`seam-getting-started-build.xml`文件很可能是Seam项目的构建文件,可能包含Maven或Ant的配置信息,用于编译、测试和打包项目。理解如何配置Seam项目以及依赖管理是非常重要的。 7. **开发环境**...
- Maven3作为一个项目管理和构建自动化工具,广泛用于JBoss Seam项目。 - Tomcat7支持Servlet 3.0规范,与Seam框架兼容。 6. JSF2: - JSF2(JavaServer Faces 2.0)是基于Java EE的一个用于构建组件驱动的用户...
- **构建项目**:使用 Maven 或 Ant 构建示例项目。 - **部署应用**:将构建好的 WAR 文件部署到 JBoss AS 中。 - **测试应用**:启动服务器并通过浏览器访问示例应用。 **1.1.2 在 Tomcat 上运行示例** - **准备...
Maven是一个项目管理和综合工具,它通过定义项目的结构、依赖关系和构建过程,帮助开发者管理项目生命周期。在Encore工程中,Maven仓库存储了项目所需的各种依赖库,如JAR文件,确保了开发环境的一致性和可重复性。...
如果使用Maven,可以在命令行或Maven的POM.xml文件中定义Seam相关的依赖。 3. **配置文件**:Seam工程的核心配置文件包括`components.xml`和`seam.properties`。`components.xml`用于声明和配置Seam组件,而`seam....
3. **自动构建**:支持Maven集成,可以使用`seam build`进行项目的自动化构建。 4. **部署与运行**:`seam deploy`命令能将项目部署到服务器上,便于测试和运行。 5. **测试管理**:提供对JUnit测试的支持,方便进行...
- 相关的配置文件,如`pom.xml`(如果使用Maven构建),`seam.properties`,`web.xml`和`faces-config.xml`。 - 可能还会有数据库连接配置和实体类,如果示例涉及到了数据持久化。 通过学习和实践这个例子,你可以...
2. `examples`或`samples`:可能包含了一些示例项目,帮助开发者了解如何使用Seam框架构建实际应用。 3. `docs`或`documentation`:可能包含了Seam的官方文档,包括用户指南、API参考等,对于学习和理解Seam的功能和...
Maven profiles使得在同一项目中管理不同的环境配置成为可能。 #### 15. internal->maven-archetype-quickstart() 该骨架用于创建一个快速入门项目,通常包含最基本的项目结构和依赖关系。 #### 16. internal->...
- **Seam-gen**:Seam-gen是一个基于Maven的工具,可以帮助开发者自动生成项目骨架、表单和其他基础组件,大大提高了开发效率。 - **集成现有数据库**:Seam还提供了便捷的方式来从现有的数据库生成应用模型,这有助...
Maven是Apache项目下的一个构建工具,它管理项目的依赖关系,通过配置文件POM.xml来自动化构建流程。Maven仓库则存储了各种开源项目的JAR文件,供开发者在构建项目时引用。在"maven仓库和cvs源码更新"的描述中,意味...
- **Maven依赖配置**:对于使用Maven作为构建工具的项目,可以通过在`pom.xml`文件中添加适当的依赖来引入Seam3库。 ##### 2.2 配置 - **Maven依赖配置**:在项目的`pom.xml`文件中加入以下依赖: ```xml ...
6. **应用上下文集成**:在Seam中,使用SpringBean注解来注入Spring管理的bean;在Spring中,使用SeamComponent注解来注入Seam组件。 7. **测试和调试**:确保所有组件都能正常启动并协同工作,进行单元测试和功能...
1. **安装依赖**:通过Maven或Gradle等构建工具添加Seam及相关依赖到项目的构建文件中。 2. **配置环境**:根据项目需求配置Seam的相关属性,比如上下文生命周期管理、URL映射规则等。 3. **编写组件**:利用Seam...