转载

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

如何使用 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 进行部署,您需要:

  • 创建一个 EAR 模块。
  • 创建 WAR 模块(即 portlet)。
  • 将这些 WAR 模块的引用添加到您的 EAR 模块中。

要通过 Maven 实现此操作,您有两个选择。第一个选择是一个单模块项目方法。在单模块项目方法中,每个模块都是单独构建的,并按照特定顺序来分析依赖关系。

第二个方法是一个多模块项目。在多模块项目方法中,所有模块(父模块和其他引用的模块)都是使用项目聚合功能一起构建的。Eclipse 或基于 Eclipse 的 IDE(集成开发环境)中的多模块项目可能属于某个分层的目录项目布局或者一个类似 Eclipse 的平面目录布局。本文基于平面目录多模块项目方法。图 1 显示了一个平面目录多模块项目的结构。

图 1. 平面目录多模块项目的结构

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

要将一个 portlet 部署为一个 EAR,请完成以下步骤:

您可以在 此文章系列的第 1 部分 中找到关于这些步骤的更多信息。

  • 创建一个父 POM 模块。
  • 使用 IBM 原型创建一个 portlet 项目。
  • 创建一个 EAR 项目。
  • 将 EAR 项目转换成 Maven 项目。
  • 绑定父 POM、Portlet 模块和 EAR 模块。
  • 在 EAR POM 中配置 IBM 部署插件。
  • 将 EAR 项目发布到 IBM WebSphere Portal Server。

创建一个父 POM 模块

在一个多模块项目中,父模块是通过一个 POM 来定义的,被引用为父 POM,它可以引用一个或多个子模块。父 POM 通过创建其他 Maven 模块之间的绑定来提供项目聚合。可以使用父 POM 来定义设置或配置参数,让这些参数可用于所有子模块。要创建一个父 POM,请执行以下步骤:

  1. File > New > Project...
  2. 选择 General > Project
  3. 在 New Project 对话框中,单击 Next
  4. 将项目命名为 root
  5. 单击 Finish 按钮。

项目是在工作区内创建的。图 2 在 IBM® Rational® Application Developer for WebSphere Software 工作区内显示了 root 项目。

图 2. Rational Application Developer 工作区中的 root 项目

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署
  1. 选择已创建的项目。
  2. 在上下文菜单中,单击 Configure > Convert to Maven Project
  3. "Create new POM" 对话框窗口将会打开。
  4. 为 Group Id 选择 com.test.demo
  5. 选择包装类型 pom
  6. 单击 Finish 按钮。

图 3 显示了 Create new POM 向导和用来创建新的 POM 的数据。

图 3. 创建父 POM

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署
  1. pom.xml(即父 POM)是在 root 项目中创建的。

使用 IBM 原型创建一个 portlet 项目

用于 portlet 项目的 IBM 原型 (portletapp-portlet20) 可以从 IBM public repository for Maven 获得。您可以使用此 IBM 原型创建一个以 WebSphere Portal Server v8.0 为目标的 JSR 286 portlet 项目。

要创建一个 portlet 项目,请使用 IBM 原型:

  1. File > New > Project....
  2. 选择 Maven > Maven Project
  3. 单击 New Project 对话框上的 Next
  4. New Maven Project Wizard 将会打开。
  5. 接受该向导的第一页上的默认值。
  6. 单击 Next 按钮。
  7. 在 Select an Archetype 页面上,选择 Catalog 下拉菜单中的 All Catalogs
  8. 在 Filter 文本字段中键入 portlet20
  9. 原型表应该列出了以下内容:
    • 组 Id:com.ibm.tools.archetype
    • 工件 Id:portletapp-portlet20
    • 版本 1.0.1
  10. 选择 IBM 原型 portletapp-portlet20。
  11. 单击 Next 按钮。

图 4 中所示的 New Maven Project 对话框将会打开。

图 4. 使用 IBM 原型创建一个 portlet 项目

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署
  1. 键入以下值:
    • 组 Id: com.test.demo.root
    • 工件 Id: MVNPortlet
    • portlettitle :MVNPortlet
    • portletclass: MVNPortlet
  2. 单击 Finish 按钮。

portlet 项目已创建。

创建一个 EAR 项目

企业应用程序项目包含部署 J2EE 企业应用程序(通常被引用为一个 EAR 文件)所需的资源的分层结构。它包含对形成 EAR 文件的其他 J2EE 模块和 Java 项目的一组引用。

完成以下这些步骤来创建 EAR 项目:

  1. File > New > Project...
  2. 选择 Java EE > Enterprise Application Project
  3. 单击 Next 按钮。
  4. 在 Project Name 字段中键入 MVNPortletEAR
  5. 选择目标运行时 <None>
  6. 单击 Finish 按钮。

回页首

将 EAR 项目转换为一个 Maven 项目

图 5 显示了 Create new POM 页面。按照以下步骤为 EAR 模块创建一个 POM:

  1. 选择已创建的 EAR 项目。
  2. 在上下文菜单中,单击 Configure > Convert to Maven Project
  3. Create new POM 对话框页面将会打开。
  4. 选择 Group Id com.test.demo.root
  5. 单击 Finish 按钮。

图 5. 为 EAR模块创建一个 POM

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

企业应用程序项目是在工作区中创建的。图 6 显示了这个多模块项目的树形结构。

图 6. 项目的树形结构

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

绑定父 POM、Portlet 模块和 EAR 模块

要配置一个多模块项目,您需要正确地将父 POM 与其组成模块绑定在一起。

将模块添加到父 POM

  1. 打开父 POM 模块的 pom.xml。
  2. 如果尚未选中 Overview tab ,请选中它。
  3. 在 Modules 部分,的那几 Add 按钮添加 EAR 和 WAR 模块。
  4. 保存 pom.xml。
  5. 通过单击项目上下文菜单中的 Maven > Update Project... 来更新项目。

图 7 显示了用来在父 POM 中添加子模块的对话框页面。

图 7. 在父 POM 中添加子模块

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

向子模块的 POM 添加一个父 POM 引用

  1. 打开 WAR (Portlet) 模块的 pom.xml 文件。
  2. 如果默认情况下没有选中 Overview 选项卡,请选中它。
  3. 在该页面的 Parent 部分,单击 Select Parent 图标。
  4. 通过 Group Id com.test.demo 或 Artifact Id root 来搜索父模块。
  5. 根模块显示在搜索结果中。
  6. 单击 OK
  7. 设置父模块的相对路径 ../root/pom.xml。
  8. 保存更改。
  9. 按照路径 Maven > Update Project... 使用项目的上下文菜单中的内容更新项目。

重复这些步骤,为 EAR 模块添加父 POM 引用。

图 8 是对如何在子模块中添加父 POM 的引用。

图 8. 在子模板中添加父 POM 的引用

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

在 EAR POM 中添加 Maven-Ear-插件

  1. 打开 EAR 模块的 pom。
  2. 单击 Dependencies 选项卡。
  3. 在依赖关系部分中,使用组 id 和工件 id 来添加 WAR 模块。
  4. 单击 pom.xml 选项卡。
  5. 在 Maven-EAR-plugin 配置部分,将配置参数 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> 
  1. 保存更改。
  2. 按照项目上下文菜单中的路径 Maven > Update Project... 来更新项目。

确保在查看 Problems 视图或 Markers 视图视没有错误。

使用 Maven 插件发布一个 EAR 项目

要将 portlet 项目作为一个 EAR 项目发布到 IBM WebSphere Portal Server:

  1. 选择根模块。
  2. 在上下文菜单中,选择 Run As > Maven Build...
  3. 在配置对话框页面上的 Goal 字段中,键入 integration-test
  4. 单击 Run 按钮。

Maven 开始运行。执行日志显示在控制台中。在完成运行之后,确保 BUILD SUCCESS 位于控制台中的日志的末尾处。如果未显示该信息,那么有错误需要修复。图 9 显示了 portlet(作为一个 EAR 部署)的成功 Maven 执行结果的控制台。

图 9. Maven 执行结果

在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署

要验证 portlet 已被部署到 WebSphere Portal Server,请在门户管理员控制台中搜索它。通过将 portlet 放置在门户页面中,您可以查看如何呈现它。

结束语

在本文中,您学习了如何在 Rational Application Developer 中创建一个多模块项目,然后,使用 IBM 部署插件了与 WebSphere Portal Server 上的企业应用程序项目相同的多模块 portlet 项目。

正文到此结束
Loading...