使用 和 Hudson 在 Oracle WebLogic Server 上进行开发

Transcription

使用 Eclipse、Maven 和 Hudson 在 OracleWebLogic Server 上进行开发

ebLogic 主目录:WebLogic 域:WebLogic 管理员:WebLogic 控制台 URL:WebLogic 端口:/labs/wls1034/labs/wls1034/user localhost:7001/console7001Oracle 数据库:Oracle SID:Oracle 端口:Oracle 管理员:Oracle XE Universal Database 10.2XE1521system/welcome1Subversion URL:Subversion elcome1WLS 开发动手实践:WLS Maven 动手实践:WLS OEPE 动手实践:/home/oracle/labs/Dev labs/labHome/home/oracle/labs/Dev labs/labHome/WLS Maven/home/oracle/labs/Dev labs/labHome/WLS DEV 工作: Oracle WebLogic Server 11g R1 (10.3.4)Oracle XE Universal Database 10.2Apache Maven 3.0.1Subversion附带 Oracle Enterprise Pack for Eclipse 11gR1 (11.1.1.7) 的 Eclipse 3.6 (Helios)Hudson 下操作: 使用 Maven 构建一个多模块 Java EE 应用程序并将其部署到 WebLogic Server 中使用 Oracle Enterprise Pack for Eclipse (OEPE) 和用于 Eclipse 的 M2 插件构建相同的多模块Java EE 应用程序并将其从典型的 IDE 环境部署到 WebLogic Server 中安装和配置 Hudson 以在 WebLogic Server 上运行,并创建 Maven 2/3 作业以构建 oBayprojectmvn使用 Hudson 和 Subversion 对 Java EE 应用程序执行持续集成测试

�oBay”的 Java EE �拍卖/投标系统。oBay � Java EE 技术组合开发、与 Oracle Coherence 结合并用开源框架(例如 Spring 和 ��个方面。Subversion �oBay 项目存储在本地 subversion �中使用。oBay 应用程序是作为一个多模块 Maven �项目描述文件 (pom.xml)描述,并使用相应的 Maven n �动手实践中,新的 Oracle WebLogic Maven 插件用于将项目生成的 EAR 文件构件部署和取消部署到WebLogic Server 域中。示例显示了将 Oracle WebLogic Maven 插件的部署目标绑定到 Maven �作为标准 Maven �和取消部署。Eclipse/OEPE �同的环境和 Maven 操作。Hudson �集成操作。Hudson 应用程序将部署到 WebLogic Server中。使用 Hudson 控制台,直接通过存储在其 Subversion 位置的 oBay �目的 Maven n 作业会直接从 Subversion 信息库中签出(或更新)oBay 项目,使用 Maven �结果。使用 Oracle WebLogicMaven �署整合到 WebLogic Server ��状态离开 WebLogic Server �行的整体结果。了解 Maven 和 WebLogic Maven � oBay Maven 项目。使用桌面上的 WLS Terminal 启动程序打开终端:

Apache Maven 3.0.1 已安装在 /opt/apache-maven-3.0.1 目录中,并且 bin 目录位于 PATH 中。 在终端中,您应该可以运行“mvn oracle@localhost obay-ee] mvn -versionApache Maven 3.0.1 (r1038046; 2010-11-23 02:58:32-0800)Java version: 1.6.0 21Java home: /labs/wls1034/jdk160 21/jreDefault locale: en US, platform encoding: UTF-8OS name: "linux" version: "2.6.18-194.el5" arch: "i386" Family: "unix"如果您在运行“mvn 助。Apache Maven 配置默认情况下,特定于用户的 Maven 存储在用户主目录下的 .m2/settings.xml 文件中。对于本动手实践,该位置为 辑 settings.xml 以配置 Maven 使用合适的代理服务器来访问 Internet。由于动手实践环境中的本地 Maven �模板: settings xmlns "http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi emaLocation n.apache.org/xsd/settings-1.0.0.xsd" proxies proxy active true /active protocol http /protocol host www-proxy.us.oracle.com /host port 80 /port nonProxyHosts localhost /nonProxyHosts /proxy /proxies pluginGroups pluginGroup com.oracle.weblogic /pluginGroup /pluginGroups /settings 本动手实践使用默认的 Maven 本地信息库,相应的地址为 ��件都存储在此处。 �,您可以查看该目录。通过 Maven 构建 WLS �找到一个名为 OBay 的 WebLogic Server Maven 项目,而您将使用Maven 构建该项目并将其部署到名为 auctionServer 的 WebLogic Server 10.3.4 域中。

已经为您创建 auctionDev 域,您应该使用 WLS Auction Dev Server 桌面启动程序为 auctionDev �出中看到一条 Server started in RUNNING mode 消息,它表示服务器已成功启动— ��境正确无误:使用桌面上的链接打开 obay-ee 文件夹:该文件夹托管 oBay 应用程序并表示 Maven 项目的顶层目录。

打开 oBay 项目的顶层 pom ��显示的属性,它们将用于指定 WebLogic Maven 插件的部署目标。由于这是 oBay 项目的父 �设置。 ?xml version "1.0" encoding "UTF-8"? project modelVersion 4.0.0 /modelVersion groupId oracle.demo.appgrid.obay /groupId artifactId obay /artifactId name OBay :: App Grid Application Sample /name packaging pom /packaging version 1.0 /version description Maven version of oBay /description inceptionYear 2009 /inceptionYear url http://scythe.ocsprojects.com /url . modules module AuctionModel /module module AuctionSecurity /module module AuctionUtils /module module AuctionServices /module module AuctionWeb /module module AuctionEAR /module module AuctionWebSvcClient /module /modules

. properties wls.application.home /labs/wls1034/user projects/applications /wls.application.home wls.domain.name auctionDev /wls.domain.name wls.adminurl t3://localhost:7001 /wls.adminurl wls.user weblogic /wls.user wls.password welcome1 /wls.password /properties /project 您还应该查看 AuctionEAR/pom.xml,该文件配置为使用 weblogic-maven-plug-in 并在顶层 pom 中设置了相关属性: project xmlns "http://maven.apache.org/POM/4.0.0"xmlns:xsi emaLocation "http://maven.apache.org/POM/4.0.0v4 0 0.xsd" modelVersion 4.0.0 /modelVersion groupId oracle.demo.appgrid.obay /groupId artifactId AuctionEAR /artifactId packaging ear /packaging name AuctionEAR /name version 1.0 /version .http://maven.apache.org/maven- plugin groupId com.oracle.weblogic /groupId artifactId weblogic-maven-plugin /artifactId version {wls.version} /version configuration adminurl {wls.adminurl} /adminurl user {wls.user} /user password {wls.password} /password name {project.build.finalName} /name remote false /remote upload false /upload /configuration . executions execution id deploy /id phase pre-integration-test /phase goals goal deploy /goal /goals configuration source {project.build.directory}/ {project.build.finalName}. {project.packaging} /source /configuration /execution

execution id undeploy /id phase post-integration-test /phase goals goal undeploy /goal /goals /execution /executions /plugin . /project 在 WLS Terminal 中,将目录切换至 WLS Maven 动手实践: cd /labs/Dev labs/labHome/WLS Maven/obay-ee依次执行 Maven 命令“mvn clean”和“mvn package”,使用父项目构建整个 oBay 应用程序。 mvn clean mvn package

执行这两个 Maven 命令将导致构建整体 oBay Maven �。 �� (AuctionModel)、JPA/EJB 服务层(AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用 AuctionEAR 项目将独立的子项目组装为一个EAR 文件形式的可部署构件。要部署 AuctionEAR 应用程序以便测试 WebLogic Server 域,您可以使用 weblogic-maven-plugin 并直接在 Maven 中执行操作。将目录切换至 AuctionEAR 项目文件夹并发出以下命令: cd AuctionEAR mvn com.oracle.weblogic:weblogic-maven-plugin:deploy -Dsource target/AuctionEAR.ear

–Dsource target/AuctionEAR.ear 属性指定供 weblogic-maven-plug-in -plugin 使用的其余属性均通过父 Maven ��菜单栏中打开 Web 浏览器并使用以下 URL 测试应用程序: http://localhost:7001/obay

�关闭浏览器窗口并使用 weblogic-maven-plugin 和以下命令取消部署应用程序: mvn com.oracle.weblogic:weblogic-maven-plugin:undeploy

要查看 Maven 阶段与 weblogic-maven-goal 的自动绑定,您可以在 oBay 项目级别或者在 AuctionEAR 模块上执行“mvn ��成整体 oBay ��地执行 weblogic-maven-plugin 部署及取消部署目标。MavenSureFire �基于 HtmlUnit �来验证可以成功访问应用程序。 cd /labs/Dev labs/labHome/WLS Maven/obay-ee mvn ��命令的输出。您将注意到 Maven ��括自动执行 weblogic-maven-plugin 部署目标以部署应用程序、执行 SureFire 插件以运行 oracle.demo.auction.ear.SimpleITCheck �及最后执行 weblogic-maven-plugin 取消部署目标以在所用的 WebLogic Server 域中取消部署应用程序。您在 oBay 父项目上执行“mvn ��每个子模块,包括用于将 weblogic-maven-plugin 绑定到 Maven 集成测试前/后阶段的 AuctionEAR 模块。

然后显示以下屏幕内容。调用 AuctionEAR ��测试用例(SimplePageCheckIT) 以及取消部署应用程序。

�极为有用,稍后我们在使用 Hudson �之前,请关闭运行中的 WebLogic Server auctionDev �键入 Contro-C)。

在 Eclipse/OEPE 中使用 Maven如今,在 Eclipse/OEPE 中使用 Maven 的最简单方式是使用常见的第三方 m2eclipse 插件;动手实践映像中的 OEPE 11.1.1.6 Helios 副本中已经安装了该插件。单击“OEPE 11gR1 PS3 (Eclipse)”桌面启动程序,启动 Eclipse:然后选择“WLS DEV OEPE”工作区:请花几分钟使用具有 m2eclipse 插件的 Oracle Enterprise Pack for Eclipse (OEPE) 环境了解项目。请注意工作区底部的 Maven Repositories �内容。此外,请使用OEPE � POM 文件,例如 obay/pom.xml。

选择 AuctionEAR/pom.xml 文件,并使用 Open with Maven POM Editor 选项打开 POM 编辑对话框。您可以在此处查看 POM 配置,包括指定 weblogic-maven-plugin 执行与Maven �践,我们将使用 WebLogic Server 插件在 OEPE 中启动和停止目标 WebLogic Server �之前操作中的所有 WebLogic Server �键入 Ctl-C)。

�的 WebLogic Server 域。选择 Servers �务器图标并选择 Start �在 Console ��

要开始项目,请执行 maven �为此,打开顶层 obay 对象并右键单击pom.xml,然后选择 Run As - Maven clean,您将在 Console 视图中看到 Maven �构建和打包应用程序。这将通过 Maven ��,请选择顶层 pom.xml,单击右键并选择 Run As - Maven package:

WebLogic Server ��署/取消部署以及创建 JDBC 连接池和 JMS �在 OEPE 内部打开 WebLogicServer �并双击 WebLogic Server ��浏览器中输入以下 URL 来打开 WebLogic Server 管理控制台: http://localhost:7001/console。以 weblogic/welcome1 �人员可能更希望在不退出 Eclipse 的情况下部署 oBay 应用程序,这时便可直接在 Eclipse 中使用WebLogic Maven 插件。打开 AuctionEAR 项目,右键单击 pom.xml 并选择 Run As - Maven Build (Shift Alt X M),然后选择AuctionEAR:deploy 选项:

您应该看到 WebLogic Maven 插件正在部署应用程序 — �中列出的新应用程序。

您可以采用相同的过程在 Eclipse 中取消部署 oBay 应用程序,即依次使用 Run As - Maven Build(Shift Alt X M) 和 AuctionEAR:undeploy �关闭 Eclipse。这将自动停止 Eclipse 已启动的 WebLogic Server 实例。

结合使用 Hudson CI 服务器 与 WebLogic �松配置 Oracle WebLogic Server 以托管 Hudson CI,后者是一款专用于Java 和 Maven �境中,您将使用现有 WebLogic Server 域auctionDev 并将 Hudson Web 应用程序 (hudson.war) 部署到管理服务器中。 然后,您将为动手实践环境配置 Hudson,在 oBay 项目的 Subversion 位置直接创建一个新的 Maven/23 �您将在 Subversion 中对项目进行更新,这会自动通知 Hudson 并启动新的构建作业。注意: 此配置并不理想,因为运行 CI ��这些服务器会相互分开,CI ��情况。第 1 步 — 启动 WebLogic Server auctionDev 域已经为您创建 auctionDev 域,您应该使用 WLS Auction Dev Server 桌面启动程序为 auctionDev �出中看到一条 Server started in RUNNING mode 消息,它表示服务器已成功启动 �帮助,确保环境正确无误:

第 2 步 — 部署 Hudson Web 应用程序 (hudson.war)在看到 auctionDev �话并通过 http://localhost:7001/console 访问WebLogic �制台: 开 Deployments 选项卡,并单击 Install 开始部署过程。在 /labs/wls1034/user projects/applications/Hudson 目录中选择 hudson.war Web 归档并单击 Next:

选择“Install this deployment as an application”并单击 Next:

单击 Finish 完成部署:

第 3 步: 配置 Hudson CI 服务器将 Hudson CI 服务器部署到 WebLogic Server 之后,您可以在浏览器中输入 http://localhost:7001/hudson以访问 Hudson Web 应用程序

单击 Manage Hudson 以配置 Hudson CI 服务器,然后单击 Configure System 链接。要配置 Hudson,您需要指定希望使用的 JDK 和 Maven 的安装位置。对于 JDK:单击 Add JDK 按钮并输入名称 JDK 1.6.0 21。指定 /labs/wls1034/jdk160 21 作为 JAVA HOME 位置。确保取消选中 Install automatically 框以指定现有安装。对于 Maven:单击 Add Maven 按钮并输入名称 Maven 3.0.1。指定 /opt/apache-maven-3.0.1 作为 MAVEN HOME 位置。确保取消选中 Install automatically 框以指定现有安装。

滚动到配置页面底部并单击 Save 按钮。第 4 步: 为 oBay 创建 Hudson 作业在 Hudson 信息板中,单击 New Job 链接。将作业名称指定为“oBay Project Build”,选择 Build 作为 maven2/3 项目选项并单击 OK。

选择 Subversion 作为 Source Code Management 系统。将 SVN Repository URL 指定为: “svn://localhost/otnvdd/obay/trunk/obay-ee”。

向下滚动并选择 Poll SCM 选项。在 Schedule � Goals and options 字段中输入“clean install”,以便为此作业指定 Maven 生命周期。保存配置。

在 Project oBay 项目构建页面中,单击 Modules 链接以创建新 Hudson 工作区。单击 Run a build 链接以启动构建过程。

Build History �的链接。单击该链接,然后单击 Console Output 以查看构建进度。您应该看到 Hudson 为项目创建了一个工作区,然后从 SVN 服务器下载项目文件:

这可能需要一段时间。在 Hudson �看到已启动 Maven 构建(“mvnclean ��到 Hudson �

浏览控制台输出,您将看到 weblogic-maven-plugin �序(作为Maven 安装生命周期的一部分),以及执行 SimplePageCheckIT �使用 Maven �完全通过自动 Hudson 作业管理它。

滚动到页面顶部并单击 Back to Project 链接以返回项目信息板。然后,单击 Latest Test Result �相同集成测试用例中显示的结果。

�结果。

�航栏中的 Hudson 链接,返回到整体 Hudson �状态,它会根据 Subversion �即时视图。

第 5 步: 在 Subversion 签入之后查看自动 Hudson 构建为 oBay Project 作业创建 Hudson 工作区之后,会直接使用托管 oBay Project 源代码的 Subversion � Hudson 掌握 Subversion 的信息,因此它会在 Subversion dson �时,它会启动新的构建作业以便从 Subversion ��员执行签入时,Hudson �现在可对 oBay �回 Subversion 信息库。这将导致Hudson 启动新的构建作业,您可以直接在 Hudson �开 WLS Terminal。

将目录切换至 labs 目录下的 Maven 项目: cd labs/Dev labs/labHome/WLS Maven/obay-ee使用 vi 对 FILE TO UPDATE 或者添加任何内容并保存它。使用 vi 之类的编辑器编辑文件: vi FILE TO UPDATE现在,发出 Subversion 命令以检查项目状态: svn status您应该看到 FILE TO UPDATE 已在本地修改:MFILE TO �提交回 Subversion 信息库,然后快速切换到 Web 浏览器以查看Hudson 信息板中的更改。 svn commit –m ―Testing subversion change with Hudson‖在 Web �建作业。 此构建作业通过 Subversion 启动,它使用 postcommit 触发器通过 HTTP 将通知发送至 Hudson,以便向其告知项目更改。

单击 oBay Project Build ��的状态和其他方面。

单击 Last Build ��信息,以及有关在 Subversion �步骤之后,您应该看到 Changes 描述与用于将 FILE TO UPDATE 的更改提交给 Subversion ��。

这个简单的最终示例演示了 Hudson ��为此自动构建的一部分,完全相同的 weblogic-maven-plugin n 作业执行的 Maven ��试失败,则 Hudson �馈。如果依次单击链接 Latest �查看一组已执行的 Mojo 的链接。它将显示在所执行的 M aven 生命周期中使用的 Maven Mojo 序列。 您将在此处看到 Mojo 执行序列,其中包括 ploy。这显示了配置为作为 Maven 安装生命周期的一部分自动执行的 weblogic-maven-plugin 目标的执行情况。

�� SimplePageCheckIT.java 将更改签回Subversion 并查看 Hudson �,您了解了如何使用 WebLogic Server 来处理相对复杂的多模块 Maven 项目。您使用这些模块提供的各种 Maven 项目描述构建了整体 oBay 应用程序,并使用一些 Maven � WebLogic Maven 插件将项目构件部署到运行中的 WebLogic Server 域中。您还了解了 WebLogicMaven 插件部署目标与 Maven 阶段的绑定可让部署操作作为 Maven 署和配置了 Hudson CI 服务器以在 WebLogic Server 域上运行。您创建了新的 Hudson 作业以自动测试 oBay �最后,您了解了 Hudson 如何与 Subversion �目的更改。

Hudson 应用程序将部署到 WebLogic Server 中。使用 Hudson 控制台,直接通过存储在其 Subversion 位置的 oBay 项目创建新作业,并且作业本身了 解项目的 Maven n 作业会直接从 Subversion 信息库中签出(或