自动化发布线上产品!这个很重要!对于我这种闲麻烦的懒人来说真的是必备!
准备工具:git,maven
原理很简单,贴一下图解释一下流程
把远程代码pull下来,然后用maven打包成war包,然后删除tomcat中旧的root.war,停止tomcat运行,把打包好的war包命名为root.war移动到tomcat下,延迟10秒(为了让tomcat完全停止),启动tomcat
1.git拉取项目我用的ssh连接,所以这里需要在linux上生成秘钥,这个有开经验的人应该都会,不会的百度一下即可
ssh-keygen什么的,然后去~/.ssh/下赋值id_pub的值,然后在github上添加公钥,即可pull和merge
2.为了让maven能在脚本中执行,必须将maven安装在服务器上,然后在/etc/profile中设置一下全局命令路径,然后source /etc/profile使修改生效
3.注意一下路径顺序,不要写错地址,脑子里过一下这个顺序即可
最后执行脚本,注意看看这个脚本是不是可以执行,如果不可以执行的话修改一下权限 chmod -R 744 /developer/deploy.sh
最后执行一下脚本
[root@sykcloud developer]# /developer/deploy.sh
===========进入git项目happymmall目录=============
==================git fetch======================
==================git pull======================
Already up-to-date.
===========编译并跳过单元测试====================
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com:mmal-learning:war:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 263, column 15
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mmal-learning Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ mmal-learning ---
[INFO] Deleting /developer/git-repository/mmall/target
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ mmal-learning ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 15 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ mmal-learning ---
[INFO] Compiling 45 source files to /developer/git-repository/mmall/target/classes
[WARNING] /developer/git-repository/mmall/src/main/java/com/mmall/service/Impl/UserServiceImpl.java:[13,28] MD5 is internal proprietary API and may be removed in a future release
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ mmal-learning ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /developer/git-repository/mmall/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ mmal-learning ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ mmal-learning ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ mmal-learning ---
[INFO] Packaging webapp
[INFO] Assembling webapp [mmal-learning] in [/developer/git-repository/mmall/target/mmall]
[INFO] Processing war project
[INFO] Copying webapp resources [/developer/git-repository/mmall/src/main/webapp]
[INFO] Webapp assembled in [215 msecs]
[INFO] Building war: /developer/git-repository/mmall/target/mmall.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.979s
[INFO] Finished at: Sat Jul 07 18:25:50 CST 2018
[INFO] Final Memory: 16M/40M
[INFO] ------------------------------------------------------------------------
============删除旧的ROOT.war===================
======拷贝编译出来的war包到tomcat下-ROOT.war=======
============删除tomcat下旧的ROOT文件夹=============
====================关闭tomcat=====================
Using CATALINA_BASE: /home/tomcat/apache-tomcat-default
Using CATALINA_HOME: /home/tomcat/apache-tomcat-default
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-default/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/tomcat/apache-tomcat-default/bin/bootstrap.jar:/home/tomcat/apache-tomcat-default/bin/tomcat-juli.jar
================sleep 10s=========================
1s
2s
3s
4s
5s
6s
7s
8s
9s
10s
====================启动tomcat=====================
Using CATALINA_BASE: /home/tomcat/apache-tomcat-default
Using CATALINA_HOME: /home/tomcat/apache-tomcat-default
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-default/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/tomcat/apache-tomcat-default/bin/bootstrap.jar:/home/tomcat/apache-tomcat-default/bin/tomcat-juli.jar
Tomcat started.
这样就算是自动化配置成功,赶紧去试一下吧!!