培训通网站建设,宁波北京网站建设,怎样建小型网站,专业做汽车的网站这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序#xff08;使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序#xff09;的部署过程-生成项目#xff0c;运行单元测试#xff0c;上传构建的工件到… 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序的部署过程-生成项目运行单元测试上传构建的工件到Sonatype Snapshot存储库运行Cobertura代码覆盖率报告并将应用程序部署到Amazon EC2。 链接中的“ 使用Jersey REST和Spring一起构建Java Web应用程序”给出的更早的文章中介绍了实际应用程序的详细信息。 1.将Jenkins安装为Windows服务 使用Internet浏览器导航到jenkins-ci.org网站然后下载Windows本机软件包该链接带有下划线以方便识别如“下载Jenkins”选项卡右侧窗格中所示。 下载完成后解压缩zip文件然后单击jenkins-1.xxx.msi文件。 继续执行配置步骤将Jenkins作为Windows服务安装。 2.修改默认的詹金斯港口 默认情况下Jenkins在端口8080上运行。为了避免与其他应用程序发生冲突可以通过编辑C\ Program Filesx86\ Jenkins位置下的jenkins.xml来修改默认端口。 如下所示将httpPort修改为8082。 serviceidjenkins/idnameJenkins/namedescriptionThis service runs Jenkins continuous integration system./descriptionenv nameJENKINS_HOME value%BASE%/!--if youd like to run Jenkins with a specific version of Java, specify a full path to java.exe.The following value assumes that you have java in your PATH.--executable%BASE%\jre\bin\java/executablearguments-Xrs -Xmx256m -Dhudson.lifecyclehudson.lifecycle.WindowsServiceLifecycle -jar %BASE%\jenkins.war --httpPort8082/arguments!--interactive flag causes the empty black Java window to be displayed.Im still debugging this.interactive /--logmoderotate/logmodeonfailure actionrestart /
/service 修改保存在jenkins.xml文件中后从Windows任务管理器-服务重新启动Jenkins服务然后右键单击Jenkins服务然后选择Stop Service停止该服务如下所示。 服务的状态更改为已停止后请通过右键单击Jenkins服务来重新启动服务然后选择“启动服务”以再次启动该服务。 导航到localhost8082以验证Jenkins重新启动是否成功如下所示–将显示Jenkins Dashboard。 请注意Jenkins服务可用需要一段时间。 3.安装插件 在Jenkins仪表板上导航到Manage Jenkins – Manage Plugins如下面的快照所示。 安装以下插件然后重新启动Jenkins以使更改生效。 GitHub插件用于将Github与Jenkins集成 Jenkins Cobertura插件用于Cobertura支持 部署到容器插件用于将WAR部署到EC2实例上的Tomcat容器 Jenkins Artifactory插件用于将构建的Maven工件部署到Snapshot存储库 4.配置系统 在Jenkins仪表板上导航到Manage Jenkins – Configure System如下面的快照所示。 导航到JDK部分然后单击“添加JDK”以添加JDK安装如下面的快照所示。 指定一个JDK名称选择要安装的JDK版本然后按照屏幕上的说明保存Oracle登录凭据。 保存更改。 接下来进入Git部分然后单击“添加Git”以添加Git安装如下面的快照所示。 指定Git名称指定Git可执行文件的路径并保存更改。 接下来进入Maven部分然后单击“添加Maven”以添加Maven安装如下面的快照所示。 指定Maven名称选择要安装的Maven版本并保存更改。 进入Git插件部分并输入Github用户名和电子邮件地址的值作为凭据如下所示。 保存更改。 前进至Artifactory部分然后单击“添加”以添加有关工件服务器的信息。 指定快照存储库的URL并提供从Artifactory服务器网站创建的部署者凭证如下所示。 单击“测试连接”以测试连接参数是否适合保存并保存更改。 接下来进入“电子邮件通知”部分并输入SMTP服务器详细信息如下所示。 单击高级按钮添加所需的更多详细信息然后保存更改。 单击“通过发送测试电子邮件测试配置”输入测试电子邮件收件人然后单击“测试配置”以查看电子邮件是否成功发送。 5.创建一个新的詹金斯工作 在Jenkins仪表板上单击“新作业”以创建新作业。 输入作业的名称然后选择“ Build a maven2 / 3 project”作为选项然后单击OK如下所示。 在“新作业配置”屏幕上进入“源代码管理”部分并为项目指定Git存储库URL如下所示。 保存更改。 接下来从“构建触发器”部分中选择所需的选项如下所示然后保存更改。 进入“构建”部分输入构建快照的maven目标如下所示然后保存更改。 进入“构建设置”部分。 选择“电子邮件通知”选项然后输入电子邮件收件人的值如下所示。 保存更改。 在构建后动作下单击“添加构建后动作”按钮然后选择“将战争/战争部署到集装箱”。 在Amazon EC2中必须使用角色manager-gui和manager-script配置Tomcat管理器以用户名作为管理器的实例以允许将WAR / EAR远程部署到Tomcat容器。 可以在链接“ https://help.ubuntu.com/13.04/serverguide/tomcat.html”下的“ Tomcat管理webapps”部分中找到配置步骤。 在Amazon EC2实例中完成Tomcat Manager webapp配置后如下所示输入部署所需的详细信息。 保存更改。 同样在构建后操作中单击“添加构建后操作”按钮然后选择“发布Cobertura覆盖率报告”。 如下所示输入Cobertura XML报告模式并保存更改。 6.配置settings.xml 为了将构建的Maven工件上载到工件服务器请使用相同的参数配置C\ Program Filesx86\ Jenkins \ tools \ hudson.tasks.Maven_MavenInstallation \ Maven_3.1 \ conf文件夹中的Jenkins settings.xml。如在系统上的Maven安装的默认settings.xml通常在Windows机器的C\ Program Files \ Apache Software Foundation \ apache-maven-3.1.0 \ conf下找到中所找到的。 通常需要在settings.xml中配置服务器部分以使Jenkins与Artifactory服务器的详细信息匹配。 serversserveridsonatype-nexus-snapshots/idusernameusername/usernamepasswordpassword/password/serverserveridsonatype-nexus-staging/idusernameusername/usernamepasswordpassword/password/server
/servers7.更新pom.xml 需要在构建部分下使用以下插件来配置项目的pom.xml文件以便将其部署到快照存储库并运行Cobertura Coverage报告。 Maven编译器插件 Maven部署插件 cobertura-maven-plugin 还要添加parentscm和developer部分以符合Artifactory服务器管理提出的要求如下所示。 parentgroupIdorg.sonatype.oss/groupIdartifactIdoss-parent/artifactIdversion7/version
/parentscmconnectionscm:git:gitgithub.com:elizabetht/StudentEnrollmentWithREST.git/connectiondeveloperConnectionscm:git:gitgithub.com:elizabetht/StudentEnrollmentWithREST.git/developerConnectionurlgitgithub.com:elizabetht/StudentEnrollmentWithREST.git/urltagStudentEnrollmentWithREST-1.3/tag
/scm
developersdeveloperidelizabetht/idnameElizabeth Thomas/nameemailemail2elizagmail.com/email/developer
/developersbuildfinalNameStudentEnrollmentWithREST/finalNamepluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion2.5.1/versioninheritedtrue/inheritedconfigurationsource1.6/sourcetarget1.6/target/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-deploy-plugin/artifactIdversion2.8.1/versionexecutionsexecutioniddefault-deploy/idphasedeploy/phasegoalsgoaldeploy/goal/goals/execution/executions/plugin plugingroupIdorg.codehaus.mojo/groupIdartifactIdcobertura-maven-plugin/artifactIdversion2.6/versionconfigurationformatsformathtml/formatformatxml/format/formats/configurationexecutionsexecutionphasepackage/phasegoalsgoalcobertura/goal/goals/execution/executions/plugin/plugins
/build8.立即建立 完成上述配置步骤后单击Jenkins – Upload REST Snapshot Artifacts或相应的Job名称下的“ Build Now”以基于配置构建项目。 控制台输出中包含有关配置已启动哪些步骤以及整个构建结果的详细日志。 可以检查部署到Amazon EC2实例的WAR的时间戳以查看部署是否成功。 以相同的方式可以检查快照存储库以查看工件上传是否成功。 因此每当触发SCM更改或在其他情况下构建项目以及进行单元测试的整个过程运行代码覆盖率报告将构建的工件上传到快照工件存储库将WAR部署到远程服务器容器并触发电子邮件到只需单击Jenkins的一个按钮收件人就可以自动完成。 参考 “ 我的实验与技术”博客上的JCG合作伙伴伊丽莎白·托马斯Elizabeth Thomas在Windows上使用Jenkins在Windows上使用Jenkins自动部署和上传快照Java工件 。 翻译自: https://www.javacodegeeks.com/2014/03/automating-the-deployment-and-upload-of-snapshot-java-artifacts-using-jenkins-on-window.html