使用jenkins自动部署代码。
war包下载地址:jenkins.war-Web服务器文档类资源-优快云下载
在使用jenkins之前, 部署流程是这样的:
每一个开发人员开发好自己的代码之后, 都提交到svn。 当要进行项目部署的时候,开发者从svn上拉取最新的全部完整代码到本地。 然后使用maven命令在本地进行打包。在打成war包后,将war包上传到服务器的tomcat。 然后启动tomcat更新代码。 这里会出现的问题是: 我们一个系统经常会有多个版本, 或者会有一个测试服务器,一个正式服务器, 或者还有一部分客户一个服务器的情况。这时候要发布一版代码就会非常的麻烦。 要进入多个服务器进行打包。
所以需要引进一个工具,我们只需要将自己开发的代码提交的svn。 工具会帮我们自动打包部署。 这个工具就是jenkins。
在引入jenkins之后,部署环境的流程变成了这样:
我们只需要提交代码到svn。 代码一旦提交,会触发一个钩子程序,钩子程序将做如下的事情:
1:通知jenkins, 让jenkins从我们配置的指定的svn上下载全部程序。
2:jenkins调用我们配置的指定的mavne来对源代码进行打包。
3:jenkins调用deploy to web container插件将maven构建好的war包部署到我们指定的tomcat上。
4:项目构建部署完成。
由上可知,我们只需要提交代码,其余的部署工作由jenkins代替我们来完成。
为了让jenkins代替我们完成这些工作,我们需要配置jenkins。
我们需要做如下工作:
1:让jenkins绑定jdk.
2: 让jenkins绑定svn
3:让jenkins绑定maven
4: 让jenkins绑定tomcat.
接下来,我们来配置jenkins。
准备一个tomcat , 这个tomcat是我们要部署项目的tomcat。 可以在本地,可以在服务器,按需要配置。 一下全部在本地实验。
1:将jenkins.war包放在tomcat 的webapps目录下。
2:编辑conf/tomcat-users.xml文件。 加入如下内容:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="manager-jmx" />
<user username="manager-status" />
<user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
3:编辑conf/server.xml文件。对编码进行设置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
4:启动tomcat。
然后在浏览器输入: http://localshot:8080/jenkins/进入如下界面。
第一次进入界面,jenkins会提示要我们输入一个秘钥,这个密码在下图红字显示的地址里, 我们找到这个文件,把文件中的秘钥输入进去即可。
其实这个秘钥就是管理员密码,由系统自动生成。
接着安装必要要插件,我们选择左边 《安装推荐的插件》,注意需要连外网,所有插件必须全部安装完成。 如果有的插件安装失败,可以重试安装。
安装插件完成后,jenkins提示我们创建一个用户,我们这里不创建用户了, 直接用管理员进行登陆。
在配置前,我们做如下事情:
进去全局安全配置界面,我们设置成允许用户注册,这样在我们忘记管理员密码后,还可以创建用户。
还要设置 任何用户可以做任何事情。 这个开放权限方便我们测试。
用管理员身份进入界面后,我们开始配置之前说的几个事项。
在左侧选择系统配置, 右侧选择 全局工具配置。
第一步,我们先来配置maven。
在下面输入我们安装好的maven工具的settings文件的位置。 以后jenkins将拉下来的代码用maven打包时就会从这个地方找maven的相关配置。
第二步: 我们配置JDK
给jdk起个名字,然后指定java_home。(本机已经装好了jdk)
第三步:我们配置maven。
我们指定maven路径。 以后jenkins要下依赖就下到这个maven中。
第四步:要从svn拉取代码的话,得绑定svn, 这里需要svn插件的支持,我们没有安装, 所以这里得安装这个插件。
插件管理中心搜:Subversin , 将这个插件装上, 重启tomcat ,(就是重启jenkins)
再装一个deploy to container插件。他负责把war包部署到tomcat。
接着,我们开始部署项目:
首先,创建又给工程或者叫任务。
配置SVN。 将我们的代码路径填进去。 要保证这个路径下直接有pom文件。也就是这个路径是有pom文件的一层路径。
这里填好svn地址后, 每次构建项目,默认会拉取最新提交的上次个版本的代码。换句话说,拉取构建的不是最新版的代码。要想拉取最新版代码,需要在svn的url后面加上 @HEAD 关键字。
接着配置maven。
我们选择要执行的maven 命令。 和手动打包时一样, 先清理,在install。
最后,我们开始构建项目。
此时的构建是手动构建。 第一次是这样。
这里的构建就是最开始的图示流程,jenkins从svn开始下代码,然后找到maven开始下依赖的jar包,接着执行我们指定的clean install命令将项目打成war包。然后用deploy to container插件将war放到我们指定的tomcat 中。
最后构建成功
注意:如果在打包前替换文件的话,如下操作:
参考这篇博文。 主要是下载一个插件,用这个插件去在打包前替换文件。 比如,替换pom文件。
Jenkins笔记三:拉取代码后替换配置文件再打包_正在小升初的博客-优快云博客
这样在启动前就可以替换文件了。
此时,jenkins已经可以从svn拉下来代码并用maven构建出war包了。现在还差一步,就是让jenkins将war包发布到tomcat中去。
这一步在《构建后步骤》中进行操作。