1. Maven安装
下载maven安装包,放置在usr/maven目录下:apache-maven-3.2.5-bin.tar.gz
tar zxvf apache-maven-3.2.5-bin.tar.gz
生成目录
配置环境变量:
Vi /etc/profile
增加:
MAVEN_HOME=/usr/maven/apache-maven-3.2.5
PATH=$PATH:$MAVEN_HOME/bin
export PATH MAVEN_HOME
保存:esc :wq 回车
执行 source /etc/profile 刷新环境变量配置,即可生效
mvn -v 查看maven版本
2. Ant安装
下载ant安装包,放置在usr/ant目录下:apache-ant-1.9.7-bin.tar.gz
tar zxvf apache-ant-1.9.7-bin.tar.gz
生成目录:apache-ant-1.9.7
配置环境变量:
Vi /etc/profile
增加:
ANT_HOME=/usr/ant/apache-ant-1.9.7
PATH=$PATH:$ANT_HOME/bin
export PATH ANT_HOME
保存:esc :wq 回车
执行 source /etc/profile 刷新环境变量配置,即可生效
ant -version 查看ant版本
3. jenkins安装
下载jenkins的war包:http://mirrors.jenkins-ci.org/war/latest/jenkins.war
将war包放至节点webapps目录下
再回到节点bin目录
启动web服务:./startup.sh
假设该节点的http端口是8080
则在浏览器上:http://ip:8080/jenkins/
注:若打不开
停tomcat:./shutdown.sh
查看端口是否被占用:lsof -i:8080
若占用,kill -9 pid
重启tomcat:./startup.sh
4. Jenkins配置
4.1 系统管理
在已运行的Jenkins主页中,点击左侧的【系统管理】进入如下界面:
4.1.1 提示信息
Ps:版本不同提示的消息有可能不同
4.1.1.1 Utf-8编码
Jenkins建议在tomcat中使用utf-8编码,配置tomcat下conf目录的server.xml文件
Ps:如果Job的控制台中文输出乱码,请将URIEncoding=”utf-8”更改为useBodyEncodingForURI="true"
4.1.1.2 新的版本
提示有新的版本可以下载了,喜欢更新的点击download去下载吧!
4.1.1.3 安全设置
Jenkins允许网络上的任何人代表您启动进程。考虑至少启用身份验证来阻止滥用。点击Dismiss忽略该消息,点击Setup Security进入设置界面.
设置如上图,保存后系统管理中就出现管理用户的选项。页面右上角也会出现登录/注册的选项。
右上角点击注册,
注册完成后为登录状态
4.1.2管理插件
4.1.2.1 Deploy to container plugin
(通过该方式部署时,安装该插件)
在已运行的Jenkins主页中,点击左侧的系统管理—>管理插件
在可选插件中安装Deploy to container plugin,这个插件将生成的构件(war或者ear)部署到容器中。
或者在高级选项卡中自己下载上传所需的插件:
4.1.2.2 Publish Over SSH
通过SSH远程部署时安装该插件
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH,安装完成后,重启jenkins
4.1.2系统设置
在已运行的Jenkins主页中,点击左侧的系统管理—>系统设置,进入如下界面:
3.1.2.1 JDK、Maven、Ant配置
配置一个JDK、Ant、Maven实例,在每一节下面单击Add(新增) 按钮,添加实例的名称和绝对地址。
JDK别名:随便填
JAVA_HOME:本机JDK的安装路径(错误的路径会有红字提示你的)
自动安装:不推荐这个选项
Ant与Maven的配置也是类似的
3.1.2.2 Jenkins Location
填写Jenkins URL,若要配置邮件通知,输入管理员邮件地址
3.1.2.3 Subversion
选择SVN版本
3.1.2.4 邮件通知
配置邮件通知:
可发送测试邮件测试是否配置成功。
3.1.2.5 Publish over SSH
通过SSH远程部署时配置该项
公共配置:
Passphrase:密码(key的密码)
Path to key:key文件(私钥)的路径
Key:将私钥复制到这个框中
Disable exec:禁止运行命令
私有配置:
SSH Server Name:标识的名字(随便取)
Hostname:需要连接ssh的主机名或ip地址(建议ip)
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)
私有配置的高级:
Port:端口(默认22)
Timeout (ms):超时时间(毫秒)默认即可
Disable exec:禁止运行命令
Test Configuration:测试连接
其他配置可按默认配置。
保存!
4.2 项目配置
4.2.1 新建项目
以构建一个maven项目为例:
4.2.2 配置
4.2.2.1 源码管理
本项目使用SVN管理源代码,填写 Repos URL
若没有权限,点击 enter credential ,输入用户名、密码登录
Ps:svn的用户名和密码设置了是没有办法在web界面修改的。如果要修改则先去Jenkins目录删除hudson.scm.SubversionSCM.xml文件(点到为止)
4.2.2.2 构建触发器
Build other projects are built:指定的项目完成构建后,触发此项目的构建。
Build periodically :此选项仅仅通知Jenkins按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个Job中运行一些测试用例的话,它就很有帮助。
Poll SCM :这是CI 系统中常见的选项。当您选择此选项,您可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写0,15,30,45 * * * *将使Jenkins每隔15分钟就检查一次您源码仓库的变化。
4.2.2.3 maven构建设置
Root POM:填写你项目的pom.xml文件的位置,注意:是相对位置,如果该文件不存在,会有红色字提示。
Goals and options :clean install -Dmaven.test.skip=true 或
clean package -Dmaven.test.skip=true #加入了跳过测试的代码
4.2.2.4 构建后操作
4.2.2.4.1 War文件部署设置
若使用deploy plugin插件部署,首先必须安装好Deploy Plugin插件。
其次webapps目录下必须有manager文件夹。
然后,在tomcat的conf目录配置tomcat-users.xml文件,在<tomcat-users>节点里添加如下内容:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="username" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
引号里的username和password可以随便设置。
回到Jenkins项目配置页面
4.2.2.4.1 远程部署配置
(1)构建后操作选择:deploy war/ear to a container
WAR/EAR files:war文件的存放位置,如:target/test.war ,注意:相对路径,target前是没有/的。
Context path:访问时需要输入的内容,如test访问时如下:http://192.168.x.x:8080/test/,如果为空,默认是war包的名字。
Container:选择你的web容器,如tomca 7.x
Manager user name:填入tomcat-users.xml配置的username内容
Manager password:填入tomcat-users.xml配置的password内容
Tomcat URL:填入http://192.168.X.X:8080
Deploy on failure:构建失败依然部署
注意:虽然这种部署方法可能会导致tomcat加载时出现卡死的现象。但是也是最简单的部署方式。如果卡死了重启下就好了,将tomcat的java内存参数调高可以解决这个问题。
最后,点击保存!!
到此一个项目的获取源码,打包,远程部署,邮件通知就完成了。
(2)构建后操作选择:Send build artifacts over SSH
SSH Server
Name:选择一个在系统设置里配置的名字
Transfer Set
Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)。如:target/ebop-server-0.0.1-SNAPSHOT.war
Remove prefix:移除目录(只能指定Transfer Set Source files中的目录)。如:target
Remote directory:远程目录(根据你的需求填写吧,因为我这儿是测试,所以偷懒没有填写。默认会继承系统配置)。如://usr/tomcat/tomcat-server
Exec command:把你要执行的命令写在里面。如:
cd /usr/tomcat/tomcat-server
bin/startup.sh
ps -ef | grep tomcat-server | grep -v grep | cut -c 9-15 | xargs kill -9
rm -rf webapps/ebop-server-0.0.1-SNAPSHOT.war
rm -rf webapps/ebop-server-0.0.1-SNAPSHOT
mv ./ebop-server-0.0.1-SNAPSHOT.war ./webapps/ebop-server.war
cd bin
./startup.sh
Ps:
ps -ef | grep tomcat-server | grep -v grep | cut -c 9-15 | xargs kill -9
说明:
“grep tomcat-server”的输出结果是,所有含有关键字“tomcat-server”的进程。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。“kill -9”会强行杀掉指定进程