准备环境 JDK1.8、Maven3.5.4、jenkins-2.121、Git。关于JDK安装和环境变量不讲了,自行百度一下。
下载Jenkins,采用rpm安装
rpm -ih jenkins-2.121.1-1.1.noarch.rpm
修改vi /etc/init.d/jenkins,把自己的JDK路径加到后面。
使用service jenkins start 启动。
安装Git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install git (这步有的服务器已经默认安装了,注意一下就行)
查找Git路径
whereis git
下载Maven并安装
在/usr/local中解压apache-maven-3.5.4,改为了maven(习惯问题)
修改Maven中conf/settings.xml,我把默认路径改了。在/usr/local/maven中创建repo文件夹
设置环境变量,并让其生效。不清楚的可以百度
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
打开安装Jenkins服务的地址
查看初始密码 cat /var/lib/jenkins/secrets/initialAdminPassword
确定后,会进入首页插件页面。我比较懒选择插件来安装,直接全部安装。还是看个人的选择。
输入用户名密码等信息
系统管理-》全局工具配置
修改maven默认settings.xml文件,配置git、jdk、maven后保存。
安装插件
创建一个Maven工程
构建触发器作用是 当开发人员push代码到git上面后,这里定时或通知触发自动构建。标红说明
点击下面到构造后操作选项 Deploy war/ear to a container
选择Add Container
WAR/EAR files:输入war包的相对路径,如我的war包在新建目录的target下
context path:输入用来访问tomcat的名称,localhost:8080/spring01
add container:增加容器,一般选tomcat 8X就可以。这里的username与password需要到tomcat的conf文件夹中的tomcat-users.xml修改。tomcat URL就是你希望把war包部署到的tomcat所在IP地址,最后面不需要再加斜杠/。
tomcat-users.xml中的用户名及密码默认是注释掉的,所以需要删除注释,也可以直接复制以下代码到</tomcat-users>之前。如果只是删除注释的话好像部署不会成功,还需要增加manager开头的三个role才可以。
-
<role rolename="tomcat"/>
-
<role rolename="role1"/>
-
<role rolename="manager-gui" />
-
<role rolename="manager-script" />
-
<role rolename="manager-status" />
-
<user username="tomcat" password="tomcat" roles="tomcat"/>
-
<user username="both" password="tomcat" roles="tomcat,role1"/>
-
<user username="role1" password="tomcat" roles="role1"/>
-
<user username="deploy" password="tomcat" roles="manager-gui,manager-script,manager-status" />
然后到tomcat下面webapps/manager/META-INF/context.xml 注销掉红色部分。因为默认tomcat不可以通过外部ip访问管理界面。一定要启动Tomcat,不然等构建等时候会报拒绝连接
-
<Context antiResourceLocking="false" privileged="true" >
-
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
-
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
-
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-
</Context>
-
把tomcat配置到账户密码输入进行,然后选择这个creadentials
到这里就配置完成了,点击构建从控制台看错误信息
12:41:51 [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:3.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:3.0.0: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:3.0.0 from/to central (https://repo.maven.apache.org/maven2): /usr/local/maven/repo/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.pom.part.lock (No such file or directory) -> [Help 1]
12:41:51 [ERROR]
12:41:51 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
12:41:51 [ERROR] Re-run Maven using the -X switch to enable full debug logging.
12:41:51 [ERROR]
12:41:51 [ERROR] For more information about the errors and possible solutions, please read the following articles:
12:41:51 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
这个原因是本地maven库没有相关依赖包,我们直接把本地下载好到maven库直接扔/usr/local/maven/repo/中去
重新构建成功
我们查看一下Tomcat
这里说明一下,在构建触发那里设置了2分钟去Git上查看是否有开发人员提交等代码更新,如果提交过自动重新构建发布到Tomcat下面去。在正式环境,我们一般都是通过shell脚本去操作Tomcat