Jenkins+Maven+svn+Tomcat
一、安装tomcat
1、查看系统自带的jdk,如下图:
java -version
2、查看安装的jdk并卸载jdk,如下图:
rpm -qa | grep jdk
rpm -e --nodeps java-1.7.0-openjdk
rpm -e --nodeps java-1.6.0-openjdk
3、安装 jdk-7u79-linux-x64.rpm ,如下图:
rpm -ivh jdk-7u79-linux-x64.rpm
jdk-7u79-linux-x64.rpm 默认安装路径为:/usr/java, 如下图:
4、在 /etc/profile 添加如下内容:如下图:
vim /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0_79
JAVA_BIN=/usr/lib/jdk1.7.0_79/bin
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATHCLASSPATH
5、加载配置文件
. /etc/profile 或 source /etc/profile
6、查看版本信息,如下图:
java -version
7、将 apache-tomcat-7.0.63.zip 解压
unzip apache-tomcat-7.0.63.zip
mv apache-tomcat-7.0.63 tomcat
修改 /home/tomcat/conf/tomcat-users.xml ,添加如下内容
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat"password="tomcat"roles="manager-gui,manager-script,manager-jmx,manager-status"/>
8、启动tomcat
二、安装 maven
1、下载 apache-maven-3.1.1-bin.tar.gz ,并解压到 /usr/local/
tar zxvf apache-maven-3.1.1-bin.tar.gz -C/usr/local/
cd /usr/local/
mv apache-maven-3.1.1/ maven
2、设置环境变量
vim /etc/profile ,加入如下内容:
exportM3_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:/usr/local/mysql/bin:$M3_HOME/bin:$PATH
. /etc/profile 或 source /etc/profile 使其生效
3、验证是否安装成功
mvn -v
三、安装 jenkins
1、下载 jenkins.war(目录中已存在), 存放至/home/tomcat/webapps/ 目录下
2、再次配置环境变量
vim /etc/profile ,添加如下内容
JENKINS_HOME=/home/tomcat/webapps/Jenkins
export JENKINS_HOME
. /etc/profile 或 source /etc/profile 使其生效
3、浏览器输入 http://192.168.0.247:8080/jenkins
4、jenkins 配置
a、点击 《系统管理》--> 《系统设置》
控制台乱码解决方法:
URIEncoding="UTF-8"
b、选择 《新增JDK》
c、填入别名 (最好填入 jdk版本信息)
d 、将 《自动安装》 的勾去掉,
e、JAVA_HOME 填入 jdk目录
f、选择《新增Maven》
g、填入 Name 信息
h、去掉 《自动安装》前面的勾
i、在《MAVEN_HOME》输入 maven安装目录
然后保存
j、选择《系统管理》-->《管理插件》
k、选择《可选插件》-->在搜索框输入《Deploy to containerPlugin》
选择 《直接安装》
l 选择《可选插件》-->在搜索框输入《 Publish Over SSH 》
安装此插件
系统设置
配置 ssh
name 定义名字
Hostname ssh连接目标服务器ip
Username 登录目标服务器用户(具有一定权限)
Remote Directory 连接后tomcat 存放 war 包目录
Use passwordauthentication, or use a different key 使用密码方式使用 ssh登录
Passphrase /Password ssh 登录的密码
Port ssh端口
Test Configuration 测试 ssh 连接能否成功
1)选择 《新建》
2)选择《构建一个maven项目》 Item名称 填入,然后选择 《ok》
3)选择 《Subversion》按钮,Reposityry URL 填入 svn地址
注意:此时会报错,提示无法连接到svn服务器,需要认证,点击 enter credential
4. 选择 Username/password authentication 来认证
提交以后会有成功提示,然后选择《close》按钮
会自动跳回到如下的界面,然后刷新
在 《Subversion》重新填入 svn地址,就不会报错,如下图:
注意:提前将使用svn下载项目到本地,然后查看 pom.xml 文件,找到如下内容中的<server>要和 maven 中的 settings.xml对应的 id一致
此处的 username password 跟 settings.xml and /home/tomcat/conf/tomcat-users.xml 中的 username password 一致
settings.xml位置:/usr/local/maven/conf/
下面的内容需要添加到 settings.xml 文件中
此处需要注意
username 和 password 应该在目标服务器的 tomcat 中配置的用户名和密码
目标服务器的 tomcat 中配置用户名和密码的方法
修改 /home/tomcat/conf/tomcat-users.xml ,添加如下内容
<rolerolename="manager-gui"/>
<rolerolename="manager-script"/>
<rolerolename="manager-jmx"/>
<rolerolename="manager-status"/>
<user username="tomcat" password="tomcat"roles="manager-gui,manager-script,manager-jmx,manager-status"/>
a. 在 Root POM 填入 pom.xml Goals and options 填入 tomcat7:deploy,如下图:
然后选择高级,如下图:
选择 Settings file 和 填入 File path (settings.xml 目录) 和选择 Run only if build successds or is unstable ,如下图:
配置 ssh ,选择 《构建后操作》-> 《Send build artifacts over SSH》
SSH Server 选择 系统配置时填入的 name 名称
Source files 目标服务器 脚本存放目录
Exec commangd 不知道怎么填,也填的 目标服务器脚本存放目录
6. 选择保存按钮,
7. 回到如下的界面,单击如下的位置,
8. 点击如下的按钮进行创建
点击 如下位置
点击如下位置查看日志
注意:
Maven自动部署Tomcat 错误排除
在Maven与Tomcat配合部署过程中,最常见的错误有三种,折腾了半天,终于找到三种错误产生的原因,以及相应的完美解决办法
1. Connectionrefused错误
报错信息如下:
[ERROR]Failed to execute goalorg.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy(default-cli) on project helloworld: Cannot invoke Tomcat manager: Connectionrefused: connect -> [Help 1]
原因:未启动Tomcat服务器
解决办法:先启动Tomcat服务器再选择Run
2. 401错误
报错信息如下:
[ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli)on project helloworld: Cannot invoke Tomcat manager: Server returned HTTPresponse code: 401 for URL: http://localhost:8080/manager/text/deploy?path=%2Fhelloworld -> [Help 1]
原因:权限问题
解决办法在$CATALINA_BASE/conf/tomcat-users.xml,
如D:\apache-tomcat-7.0.34\conf\tomcat-users.xml文件中添加权限
<role rolename=”manager”/>
<user username=”admin” password=”admin” roles=”manager”/>
修改pom.xml文件,在<configuration> </configuration>中添加
<username>admin</username>
<password>admin</password>
3. 403错误
报错信息如下:
[ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli)on project helloworld: Cannot invoke Tomcat manager: Server returned HTTPresponse code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld -> [Help 1]
原因:产生该问题有可能因为两个原因,具体参见解决办法
解决办法:
1)如果使用的是Tomcat 7,需要修改pom.xml中部署的url地址,将<url>http://localhost:8080/manager</url>改<url>http://localhost:8080/manager/text</url>
2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。
正确的conf/tomcat-users.xml配置应为:
<tomcat-users>
<rolerolename="manager-gui"/>
<rolerolename="manager-script"/>
<user username="admin”password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>