您的位置:首页 > 运维架构 > Tomcat

Jenkins+Maven+Git+Tomcat快速搭建持续集成环境

2017-04-13 16:40 639 查看
目录(?)[-]
下载安装及注意事项
安装插件
插件离线下载地址

配置环境
构建集成配置
立即构建
查看日志输出或构建错误信息
其它注意事项

下载安装及注意事项

jenkins下载地址 http://mirrors.jenkins-ci.org
这里选择war包,下载后直接放到tomcat或者jetty里,启动服务即可。
在浏览器中输入http://localhost:[你的端口号]/jenkins,就打开jenkins首页了
第一次打开会提示输入初始密码(用户名为admin),页面上有提示,跟着提示找到文件打开复制密码,输入即可
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

cdb925243ad74b3ca566fd2d248090d8

This may also be found at: C:\Users\A\.jenkins\secrets\initialAdminPassword

进去之后记得改密码,如果忘记改了,下次进入时还需要输入密码,还是去一开始提示的地址找到密码文件,打开复制到password文本框即可
修改密码步骤 点击用户 —— admin —— 设置 —— 密码 —— 修改后save

网上资料: 

说jenkins把网上的协议由http改为了https,但代码里没有改,所以需要手动去修改一下,步骤如下: 
修改http为https 

系统管理 —— 管理插件 —— 高级标签 —— 下面有个“升级站点” 把里面的URL中的 http改为https即可 —— 点击提交

安装插件

系统管理 —— 管理插件 —— 可选插件, 在右上角有个“过滤”的搜索框,输入
maven
,找到
Maven
Integration plugin
 因网络的原因,加载速度不一(小技巧,过滤会很卡,有可能把页面卡死,可以用ctrl+F搜索定位)
勾选后,点击下面的
直接安装
按钮,接下来等待即可。



安装完成后可以在已安装的标签里查看。
此外还需要安装的插件:
Maven插件 Maven Integration plugin
发布插件 Deploy to container Plugin
git插件 Git plugin
svn插件 Subversion Plug-in
非必须安装插件:
发送邮件插件 Email Extension Plugin

网上资料: jenkins+maven+svn实现简单的一键发布 - pein_zero的专栏 - 博客频道 - CSDN.NET

网友发现上面安装可能会失败, 


 

看错误提示信息可以发现 



大致的意思就是,文件的签名验证不正确,不管它,注意看这个红色的路径。找到这个文件,打开它
 



把这个路径复制下来,放到浏览器,就可以把这个插件下载下来。在本地建一个jenkins的关于maven插件的目录,把跟maven相关的插件都放到这个目录下



 
其它几个插件也一一找到对应的文件,找到url,下载, 然后手动上传插件。上传插件的在:系统管理——管理插件——高级,你可以看到上传插件的地方



 
注意,上传的顺序,要跟报错的顺序一样,因为这些插件都是有依赖的先后顺序的。 不过即使顺序错了也没关系,系统会提示你的:




插件离线下载地址

插件安装完成后,就可以构建项目了。

配置环境

系统管理 —— Global Tool Configuration —— 配置JDK、Git、Maven

Maven Configuration 

两个都下拉选择
Settings file in filesystem
,然后在下面的File Path里填写: 
D:\apache-maven-3.2.3\conf\settings.xml
 ,如图 



JDK 

填写别名:JDK 

自动安装
前的勾选去掉,在出现的
JAVA_HOME
里输入:
D:\Program
Files\Java\jdk1.7.0_45
 



Git 

Path to Git executable
输入:
D:\Program
Files\Git\bin\git.exe
 

如果不用git,可以点击
Delete Git
,即可 



Maven 

填写别名:maven 

去掉“自动安装”勾选框, 在
MAVEN_HOME
输入:
D:\apache-maven-3.2.3
 



最后点击
save
按钮保存。

构建集成配置

新建 —— Enter an item name 输入一个名字, 选择
构建一个maven项目
, 点击OK,如图: 



接下来到了配置页面,
勾选
丢弃旧的构建
,并填写保持构建的天数和最大个数



源码管理,这里选择了 Git
Repository URL
里填写git仓库地址: 
/e/git_repo/demo/.git
 

这里我采用了本地仓库,可根据实际情况填写url地址,如:
https://github.com/alibaba/druid.git
 

使用网络仓库需要添加Git证书
Credentials
,其原理与git免密码登录是一样的,都是基于SSH形式的,这里不再细说,请自行搜索资料。 

接下来是选择一个分支
Branch
,默认就是
*/master
,可以根据你的项目实际配置修改。 



用Svn作为源码库,其操作基本一样,输入svn地址,用户名,密码即可
构建触发器

网上资料:
build whenever a snapshot dependency is built 当job依赖的快照版本被build时,执行本job。 
Build after other projects are built:在其他项目构建完成后再进行构建。

这里又分三种情况: 

1. Trigger only if build is stable:其他项目构建成功 

2. Trigger even if the build is unstable:其他项目不稳定 

3. Trigger even if the build fails:其他项目构建失败

Build periodically 隔一段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式。例如: 
0
2 * * *
 (每天2:00 必须build一次源码) 
Poll SCM:隔一段时间比较一次源代码如果发生变更,那么就build。否则,不进行build,通常采用这种方式; 

定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。配置如下: 
*/5 * * * *
 (每5分钟检查一次源码变化,如果有更新才build)

在 Schedule中填入* * * * *,代表一分钟监听一次
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 0 * * * * 表示的就是每个小时的第 0 分钟执行一次构建。




Build
Root POM
默认填写了
pom.xml
,这里不用修改, 

Goals and options
 里填写 
clean
package
, 如图:



构建后操作 (tomcat需要添加管理账户)

网上资料: 
在tomcat中配置用户权限,即添加管理员帐号
在tomcat的安装目录中,修改
conf/tomcat-user.xml
配置文件,在
<tomcat-users>
节点里添加下面的代码,用户名和密码可自定义

<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script" />

点击
增加构建后操作步骤
下拉选择:
Deploy
war/ear to a Container
 ,多出一个发布选项
WAR/EAR files
 是war包的相对路径, 这里填写: 
target/*.war

Context path
是tomcat的发布路径,例如:填写了
myDemo
 ,
则访问地址为:
http://localhost:8080/myDemo

Containers
 发布到的容器,主要可发布到tomcat、jboss、GlassFish 

下拉选择 tomcat7.x
Manager user name
 填写上面自定义的用户名 

Manager password
 填写上面自定义的密码 

Tomcat URL
 中tomcat的访问地址 
http://localhost:8689
 

(有网友说端口号后面不要加
/

deploy on failure
:发生错误的时候是否发布到tomcat 

如图:



最后点击 
保存
 即可。

立即构建

在首页点击项目中最后一列的图标,立即构建项目,或者在项目里的左侧菜单点击
立即构建(Build Now)
,即可实现了持续集成。

查看日志输出或构建错误信息

点击工程的构建版本号 
#1
 ,在左侧菜单选择
Console
Output
,就可以查看
控制台输出
, 

最下面要出现
Finished: SUCCESS
才说明成功,(我有一次没有把test里的单元测试代码删除掉,导致一直失败)

其它注意事项

修改jenkins的工作空间

默认情况下,jenkins的工作空间会放到C:\Users[用户名].jenkins目录下, 

如过想要更改工作空间,我们需要在系统环境变量里面配置JENKINS_HOME变量,将该变量指向目标工作空间。 

例如:JENKINS_HOME=Z:\jenkins_home 

这里需要注意的是,tomcat启动情况下,jenkins不会去读JENKINS_HOME变量,必须要重启tomcat。 

而重启tomcat也是有坑的,如果tomcat是通过命令行执行tomcat/bin/startup.bat目录启动的,那么单单停掉tomcat没用, 

必须要将前面提到的命令行一并关闭掉,这时重启tomcat,jenkins才会使用JENKINS_HOME中配置的目录作为工作空间。 

此外,一旦更换工作空间,此前过于jenkins的所有配置都将作废。

发布容器中,
Add Container
选项中虽然知道
tomcat7.x
,但实际上,你选择用tomcat8.x依然支持,没有问题

如何获取构建脚本里的日志输出信息

资料: 

解决方法是使用jenkins的Log Parser插件,同使用Git Plugin一样,在插件管理中找 Log Parser插件,并添加。添加完毕后,配置jenkins中的Console Output Parsing 



rule的具体规则语法可以使用正则表达式,具体可以参考Log Parser插件的文档http://my.oschina.net/donhui/blog/382592
Parsing Rules File的配置同上文的配置工作目录具有一样的坑,如果要更新规则,首先要清除job中选中的规则,然后删除此处配置的Parseing Rule,重启tomcat。
添加完毕后,在job的配置页的 Post-Build Actions部分选中Console Output parsing 


 

然后进行如下配置:



这样我们可以对buld.bat中的error进行捕获,并且在某次构建过程的Parsed Console Output中进行查看



jenkins多次deploy到tomcat导致内存溢出的问题
当短时间内多次对一个项目进行构建操作时,tomcat会出现内存溢出的错误,
java.lang.OutOfMemoryError: PermGen space

解决方法:
在tomcat安装目录下,打开bin文件夹,window环境修改catalina.bat文件,在文件最前面(注释的结尾)添加下面的代码:
set JAVA_OPTS=-Xms512m -Xmx512m

Linux环境修改catalina.sh,在文件开头(
cygwin=false
的上面)添加下面的代码:(注意没有
set
,还有添加了双引号
"
)
JAVA_OPTS="-Xms512m -Xmx512m"

其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。
注意: 该方式只能用startup.bat启动tomcat才可以设置生效,如果是用windows的系统服务启动tomcat服务,上面的设置就不生效了。
建议: 目前没有更好的办法解决这个问题,所以减少构建频率为最佳的办法。

资料:
错误提示:java.lang.OutOfMemoryError: PermGen space 永久保存内存不足

set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m

错误提示:java.lang.OutOfMemoryError: Java heap
space 堆空间内存不足

JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。 

JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。 

建议:将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值 

当然可根据实际情况进行具体调整。




0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: