jenkins持續集成 - mavem構建spring項目打包發佈到tomcat

jenkins持續集成 - mavem構建spring項目打包發佈到tomcat

準備工作
jenkins持續集成 - docker-compose 搭建jenkins服務
jenkins持續集成 - 配置JDK
jenkins持續集成 - 配置git
jenkins持續集成 - 配置maven
jenkins持續集成 - jenkins插件線安裝

默認準備工作完成(上面教程我會陸續補全)

背景交代,jenkins服務是用docker搭建的,tomcat服務也是用docker搭建的,docker是在哪個平臺搭建的不重要,本實例是由centos7搭建,並且jenkins和tomcat分別在兩臺機器上,這會涉及跨域問題下面會說到,有坑!

在這裏插入圖片描述
在這裏插入圖片描述
沒有maven選項的需要安裝maven插件
jenkins持續集成 - 安裝maven插件

然後
添加項目託管地址

在這裏插入圖片描述

在這裏插入圖片描述
配置maven構建
在這裏插入圖片描述
然後就可以測試一下能否構建成功
在這裏插入圖片描述
正在下載maven
在這裏插入圖片描述

這裏如果太慢的話,看這個文章後半部分
jenkins持續集成 - 配置maven

然後重新構建
在這裏插入圖片描述在這裏插入圖片描述
構建成功,查看一下
在這裏插入圖片描述
構建成功,已經成功了一半了,加油!
接下來就是要把打好的war包發送到tomcat容器(2020年 3月31日 星期二 00時16分45秒 CST,晚安,明天繼續)

繼續~~~

發佈到tomcat又需要下載插件,下面沒有我們需要的,下載插件 Deploy to container,安裝插件方法參照jenkins持續集成 - jenkins插件線安裝
安裝好插件
在這裏插入圖片描述
配置tomcat
在這裏插入圖片描述

WAR/EAR files war包的位置
**/*.war 這個是通配符配置war包位置,可以寫成確切的位置 target/spring-mvc-xml.war(如下圖)
Context path 官方的解釋:容器應用於發佈WAR/EAR的上下文路徑。請注意,如果要部署的WAR/EAR內部嵌入了容器特定的配置,則可能會覆蓋此選項。 其實就是項目名

在這裏插入圖片描述
配置tomcat用戶名密碼,找到自己的tomcat,進入conf文件夾,修改 tomcat-users.xml

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

在這裏插入圖片描述
配置好,可以構建了,然後你可能會發現
在這裏插入圖片描述
這個看起來是權限問題,我們用戶已經配置過了,而且權限看起來沒有問題,

查來查去,可能是跨域問題,修改**…/webapps/manager/META-INF/context.xml**文件,我們允許所有地址的請求(生產中可不能這麼玩,要配置指定ip)

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

問題總結

允許所有地址訪問manager status頁面
由於我使用虛擬機部署Tomcat,本機訪問,所以是兩個不同的ip地址進行訪問,那麼原來的配置文件中只允許我127.0.0.1進行訪問,所有我在本地訪問時則會報403

重新構建,查看日誌


SuccessConsole Output
Started by user cool
Running as SYSTEM
Building in workspace /var/jenkins_home/jobs/test_jenkins/workspace
using credential 95954f94-54d9-446e-b331-1770f571f4e9
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://10.211.55.9/root/cool.git # timeout=10
Fetching upstream changes from http://10.211.55.9/root/cool.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials 
 > git fetch --tags --force --progress -- http://10.211.55.9/root/cool.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision bdef8dac9d5766866175d6c4398328ba46baedeb (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f bdef8dac9d5766866175d6c4398328ba46baedeb # timeout=10
Commit message: "樹莓派"
 > git rev-list --no-walk bdef8dac9d5766866175d6c4398328ba46baedeb # timeout=10
Parsing POMs
Established TCP socket on 43581
[workspace] $ /usr/lib/jvm/java-1.8-openjdk/bin/java -cp /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.13.jar:/var/jenkins_home/maven/boot/plexus-classworlds-2.6.0.jar:/var/jenkins_home/maven/conf/logging jenkins.maven3.agent.Maven35Main /var/jenkins_home/maven /var/jenkins_home/war/WEB-INF/lib/remoting-3.36.1.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.13.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.13.jar 43581
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven:  -B -f /var/jenkins_home/jobs/test_jenkins/workspace/pom.xml install
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------< learn:spring-mvc-xml >------------------------
[INFO] Building spring-mvc-xml Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ spring-mvc-xml ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ spring-mvc-xml ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ spring-mvc-xml ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /var/jenkins_home/jobs/test_jenkins/workspace/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ spring-mvc-xml ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.20.1:test (default-test) @ spring-mvc-xml ---
[INFO] No tests to run.
[JENKINS] Recording test results
[INFO] 
[INFO] --- maven-war-plugin:3.2.0:war (default-war) @ spring-mvc-xml ---
[INFO] Packaging webapp
[INFO] Assembling webapp [spring-mvc-xml] in [/var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml]
[INFO] Processing war project
[INFO] Copying webapp resources [/var/jenkins_home/jobs/test_jenkins/workspace/src/main/webapp]
[INFO] Webapp assembled in [35 msecs]
[INFO] Building war: /var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war
[INFO] 
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ spring-mvc-xml ---
[INFO] Installing /var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war to /var/jenkins_home/.m2/repository/learn/spring-mvc-xml/1.0-SNAPSHOT/spring-mvc-xml-1.0-SNAPSHOT.war
[INFO] Installing /var/jenkins_home/jobs/test_jenkins/workspace/pom.xml to /var/jenkins_home/.m2/repository/learn/spring-mvc-xml/1.0-SNAPSHOT/spring-mvc-xml-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.792 s
[INFO] Finished at: 2020-03-30T17:23:14Z
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/jenkins_home/jobs/test_jenkins/workspace/pom.xml to learn/spring-mvc-xml/1.0-SNAPSHOT/spring-mvc-xml-1.0-SNAPSHOT.pom
[JENKINS] Archiving /var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war to learn/spring-mvc-xml/1.0-SNAPSHOT/spring-mvc-xml-1.0-SNAPSHOT.war
channel stopped
[DeployPublisher][INFO] Attempting to deploy 1 war file(s)
[DeployPublisher][INFO] Deploying /var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war to container Tomcat 8.x Remote with context test
  Redeploying [/var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war]
  Undeploying [/var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war]
  Deploying [/var/jenkins_home/jobs/test_jenkins/workspace/target/spring-mvc-xml.war]
Finished: SUCCESS

構建成功,我們查看一下
在這裏插入圖片描述
恭喜你!成功!cool! cool!

靜下心來慢慢走,不知不覺走就走了很遠,加油!

接下來會寫,maven定時構建,當我們提交代碼後,jenkins定時檢查代碼是否有更新,有更新的話,自動構建打包發送tomcat,把我們把繁瑣的打包部署過程自動完成,我們只需要專心寫代碼就OK了,想想就爽!cool!cool!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章