在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成

第 2 部分. EAR 部署

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成

敬请期待该系列的后续内容。

此内容是该系列的一部分:在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成

敬请期待该系列的后续内容。

如何使用 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. 平面目录多模块项目的结构
多模块项目的目录结构
多模块项目的目录结构

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

  • 创建一个父 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 项目
工作区中的 Root 文件夹
工作区中的 Root 文件夹
  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
创建一个新的 POM 对话框
创建一个新的 POM 对话框
  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 项目
New Maven Project 向导
New Maven Project 向导
  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
用来创建一个 POM for EAR 模块的对话框
用来创建一个 POM for EAR 模块的对话框

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

图 6. 项目的树形结构
工作区中不同模块的项目结构
工作区中不同模块的项目结构

绑定父 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 中添加子模块
将对子模块的引用添加到父 POM
将对子模块的引用添加到父 POM

向子模块的 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 的引用
将父 POM 的引用添加到 WAR 模块
将父 POM 的引用添加到 WAR 模块

在 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 执行结果
Maven 执行结果的屏幕截图
Maven 执行结果的屏幕截图

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

结束语

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


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=996562
ArticleTitle=在 IBM Rational Application Developer 中为 portlet 项目实现 Maven 集成: 第 2 部分. EAR 部署
publish-date=02022015