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

Jenkins+Maven+SVN+Tomcat自动部署

2016-12-29 16:28 666 查看
配置Tomcat用户:
此Tomcat是部署web的Tomcat,不是Jenkins的Tomcat。
在“tomcat/conf/tomcat-users.xml”文件中增加用户:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="admin,manager,manager-gui,manager-script,admin,admin-gui"/>

重启Tomcat。
输入“http://localhost:8080/manager”,输入上面的“用户名”和“密码”登录。

安装Jenkins:
jenkins官网:https://jenkins.io

安装Jenkins插件:
下载:deploy.hpi
下载:publish-over-ssh.hpi

配置Jenkins:
Jenkins -> 系统管理 -> 系统设置。
配置“Maven Configuration”:
File path:Maven配置文件的路径。

配置“JDK”:
JAVA_HOME:JDK路径。

配置“Maven”:
MAVEN_HOME:Maven路径。

配置“Publish over SSH”:
增加一个新的“SSH Servers”。
Name:SSH连接的名字。

Hostname:部署web服务器的IP。

Username:登录服务器的用户名。

选中“Use password authentication, or use a different key”。
Passphrase
/ Password:登录服务器的密码。

点击“Test
Configuration”。如果显示“Success”,则代表连接成功。

新建项目:
Item名称:填写项目的名称。

选择“构建一个maven项目”。
点击“OK”。

配置项目:
“源码管理”:
选择“Subversion”。
“Repository URL”:SVN地址。
“Credentials”:输入登录SVN的用户名和密码。

“构建触发器”:
选择“Build whenever a SNAPSHOT dependency is built”。

“构建后操作”:
选择“Deploy war/ear to a container”:
WAR/EAR files:war路径(相对于workspace的路径)。例如全路径是“/root/.jenkins/workspace/demo/target/demo.war”,输入“demo/target/demo.war”。

Context path:输入“/”。

Containers:选择“Tomcat
7.x”:

Manager
user name:上面新增的用户名(tomcat-users.xml中的用户名)。

Manager
password:上面新增的密码(tomcat-users.xml中的密码)。

Tomcat
URL:部署web服务器的URL。例如:http://127.0.0.1:8080/

选择“Send build artifacts over SSH”:
Name:选择前面填写的“SSH Servers”。

“Transfers” -> “Exec
command”输入重启tomcat的Shell脚本:
echo "shell script is start."

TOMCAT_HOME="/usr/local/tomcat-cdif"
TOMCAT_PORT=8094

#shutdown tomcat
${TOMCAT_HOME}/bin/shutdown.sh
echo "tomcat shutdown."

sleep 5

#tomcat pid
TOMCAT_PID=`/usr/sbin/lsof -n -P -t -i :8094`
echo ${TOMCAT_PID}

if [ ${TOMCAT_PID} ]; then
kill -9 ${TOMCAT_PID}
echo "kill ${TOMCAT_PID}"
fi

#startup tomcat
${TOMCAT_HOME}/bin/startup.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息