如何使用 IBM portlet 原型(archetype)创建一个 portlet 项目,并使用 IBM 的 portal-maven-deployment 插件将它部署到 IBM® WebSphere® Portal Server,这就是文章 在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成 的主题,这篇文章于 2014 年 3 月发布在 developerWorks 上。这篇文章解释了如何使用 IBM portal-maven-deployment 插件实现 portlet 部署(作为一个 WAR)。本文将介绍如何使用 IBM portal-maven-deployment 插件实现 portlet 部署(作为一个 EAR)。本文是 2014 年发表的那篇文章的后续。
在 Maven 中,项目是作为模块被引用的。每个模块都有一个名为 pom.xml 的配置文件。企业应用程序项目通常包含对形成 EAR 文件的其他 J2EE 模块和 Java 项目的一组引用。要将 portlet 作为一个 EAR 进行部署,您需要:
要通过 Maven 实现此操作,您有两个选择。第一个选择是一个单模块项目方法。在单模块项目方法中,每个模块都是单独构建的,并按照特定顺序来分析依赖关系。
第二个方法是一个多模块项目。在多模块项目方法中,所有模块(父模块和其他引用的模块)都是使用项目聚合功能一起构建的。Eclipse 或基于 Eclipse 的 IDE(集成开发环境)中的多模块项目可能属于某个分层的目录项目布局或者一个类似 Eclipse 的平面目录布局。本文基于平面目录多模块项目方法。图 1 显示了一个平面目录多模块项目的结构。
图 1. 平面目录多模块项目的结构
要将一个 portlet 部署为一个 EAR,请完成以下步骤:
您可以在 此文章系列的第 1 部分 中找到关于这些步骤的更多信息。
在一个多模块项目中,父模块是通过一个 POM 来定义的,被引用为父 POM,它可以引用一个或多个子模块。父 POM 通过创建其他 Maven 模块之间的绑定来提供项目聚合。可以使用父 POM 来定义设置或配置参数,让这些参数可用于所有子模块。要创建一个父 POM,请执行以下步骤:
root
。 项目是在工作区内创建的。图 2 在 IBM® Rational® Application Developer for WebSphere Software 工作区内显示了 root 项目。
图 2. Rational Application Developer 工作区中的 root 项目
图 3 显示了 Create new POM 向导和用来创建新的 POM 的数据。
图 3. 创建父 POM
用于 portlet 项目的 IBM 原型 (portletapp-portlet20) 可以从 IBM public repository for Maven 获得。您可以使用此 IBM 原型创建一个以 WebSphere Portal Server v8.0 为目标的 JSR 286 portlet 项目。
要创建一个 portlet 项目,请使用 IBM 原型:
portlet20
。 图 4 中所示的 New Maven Project 对话框将会打开。
图 4. 使用 IBM 原型创建一个 portlet 项目
com.test.demo.root
MVNPortlet
:MVNPortlet
MVNPortlet
portlet 项目已创建。
企业应用程序项目包含部署 J2EE 企业应用程序(通常被引用为一个 EAR 文件)所需的资源的分层结构。它包含对形成 EAR 文件的其他 J2EE 模块和 Java 项目的一组引用。
完成以下这些步骤来创建 EAR 项目:
MVNPortletEAR
。 回页首
图 5 显示了 Create new POM 页面。按照以下步骤为 EAR 模块创建一个 POM:
图 5. 为 EAR模块创建一个 POM
企业应用程序项目是在工作区中创建的。图 6 显示了这个多模块项目的树形结构。
图 6. 项目的树形结构
要配置一个多模块项目,您需要正确地将父 POM 与其组成模块绑定在一起。
图 7 显示了用来在父 POM 中添加子模块的对话框页面。
图 7. 在父 POM 中添加子模块
com.test.demo
或 Artifact Id root
来搜索父模块。 重复这些步骤,为 EAR 模块添加父 POM 引用。
图 8 是对如何在子模块中添加父 POM 的引用。
图 8. 在子模板中添加父 POM 的引用
generateApplicationXml
的值设置为 true
。 清单 1 是 maven-ear-plugin 配置。
清单 1. EAR POM 中的 Maven-ear-plugin 配置
<plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.8</version> <configuration> <version>6</version> <generateApplicationXml>true</generateApplicationXml> </configuration> </plugin>
清单 2 显示了如何添加开发插件。<plugins> 标签公布了 EAR 项目。相同的代码可用于 WAR 部署。
清单 2. 使用配置参数更新部署插件
<plugin> <groupId>com.ibm.tools.plugin</groupId> <artifactId>portal-deployment-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <phase>integration-test</phase> <configuration> <username>wpsadmin</username> <password>wpsadmin</password> <hostname>localhost</hostname> <port>10039</port> <profilepath>C:/IBM/WP80/wp_profile</profilepath> <cell>awan</cell> </configuration> <goals> <goal>deploy-portlet</goal> </goals> </execution> </executions> </plugin>
确保在查看 Problems 视图或 Markers 视图视没有错误。
要将 portlet 项目作为一个 EAR 项目发布到 IBM WebSphere Portal Server:
integration-test
。 Maven 开始运行。执行日志显示在控制台中。在完成运行之后,确保 BUILD SUCCESS 位于控制台中的日志的末尾处。如果未显示该信息,那么有错误需要修复。图 9 显示了 portlet(作为一个 EAR 部署)的成功 Maven 执行结果的控制台。
图 9. Maven 执行结果
要验证 portlet 已被部署到 WebSphere Portal Server,请在门户管理员控制台中搜索它。通过将 portlet 放置在门户页面中,您可以查看如何呈现它。
在本文中,您学习了如何在 Rational Application Developer 中创建一个多模块项目,然后,使用 IBM 部署插件了与 WebSphere Portal Server 上的企业应用程序项目相同的多模块 portlet 项目。