jekins实现自动部署(windows环境)
1、开发机部署Tomcat
1、下载Tomcat压缩包直接解压,然后进入Tomcat的bin目录运行startup.bat启动Tomcat;
2、检查端口是否启动:命令提示符执行netstat -an | find "8080" | find "LIS";
3、打开http://localhost:8080/,即可看到tomcat页面;
4、将Tomcat设置为开机自启动:(1)配置Tomcat环境变量:TOMCAT_HOME:C:\software\apache-tomcat-8.5.29-windows-x64\apache-tomcat-8.5.29\bin;CATALINA_BASE:C:\software\apache-tomcat-8.5.29-windows-x64\apache-tomcat-8.5.29;CATALINA_HOME:C:\software\apache-tomcat-8.5.29-windows-x64\apache-tomcat-8.5.29;
(2)安装Tomcat服务:cmd(必须以管理员身份运行)进入Tomcat的bin目录,执行service.bat install;
(3)双击bin目录下的tomcat8w.exe可以设置启动类型为自动,状态为启动;
(4)关闭Tomcat服务:net stop Tomcat8;
(5)开启Tomcat服务:net start Tomcat8;
2、开发机部署ant
1、官方主页http://ant.apache.org下载ant;
2、配置环境变量
ANT_HOME C:\software\apache-ant-1.10.3-bin\apache-ant-1.10.3
Path %ANT_HOME%\bin
ClassPath %ANT_HOME%\lib
3、验证是否安装成功:cmd中输入ant -version
3、开发机部署Jekins并安装git插件
1、下载jekins:https://jenkins.io/download/(Jenkins 2.107.1);
2、将下载的jenkins.war放在C盘根目录下的Jekins文件夹中;
3、以管理员身份运行cmd,进入Jekins文件夹,执行java -jar jenkins.war--httpPort=8000
4、浏览器输入http://localhost:8000/解锁Jekins,并进入使用;(可安装推荐的插件);
5、修改admin的密码,进入C:\Users\40459\.jenkins\users\admin目录中的config.xml文件,将<passwordHash></passwordHash>之间的内容替换为#jbcrypt:$2a$10$WpyHUvd17zVICGNRT5UK4O.DgjWs.a8siigpWLpYqiEySRJcl9cT2,则密码更换为111111;
6、git成功安装则可在Jekins源码管理看到
4、配置git
1、新建任务->“源码管理”->”Git”,在Repository URL设置远程仓库路径,Credentials点击“Add”并在Username和Password中配置github账户及密码,配置完成后Credentials下拉选择配置的内容,点击“应用”;
5、配置SSH
2、Jekins安装插件publish over ssh;
3、在Jekins服务器执行:ssh-keygen -t rsa;
6、手工构建
1、选中任务,点击“立即构建”按钮,构建成功则可在jekins的工作区间看到相应的代码;
2、构建工程目录:C:\Users\40459\.jenkins\workspace\任务名;
3、配置maven后,工程打包为war包;
7、配置触发器
1、进入任务->构建触发器,选择Poll SCM,并在日程表配置H/3 * * * *(表示每3分钟检查一次,如有变更则自动构建,默认为每1分钟检查一次);
8、配置JDK
1、进入控制台,点击“系统管理”->“全局工具配置”->“新增JDK”;
2、JAVA_HOME可直接配置服务器JDK路径;也可以Jekins安装JDK并自己使用;
9、配置ant
1、需要在工程里新建ant命令运行所需的build.xml文件;
2、Jekins控制台,“系统管理”->“全局工具设置”,新增ant,将本地的Ant_Home路径写入;
3、Jekins,指定工程的配置的构建增加“Invoke Ant”,“Ant Version”选择第2步设置的名称;
10、将生成的war包推送到远程服务器Tomcat的webapps目录
1、Jekins,安装Deploy to container 插件;
2、远程服务器Tomcat的conf/tomcat_user.xml关于user的注释修改为:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="both" roles="tomcat,role1"/>
<user username="deploy" password="tomcat" roles="admin-gui,manager-gui,manager-script,admin"/>
<user username="role1" password="role1" roles="role1"/>
4、远程服务器Tomcat的conf/Catalina/localhost/中新增文件manage.xml,文件内容如下:
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<value className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$"/>
</Context>
5、Jekins,指定工程的配置的构建后操作配置如下:
11、Jekins其他操作
1、Jekins卸载:停止Jekins服务;删除C:\Users\40459\.jenkin整个目录;
2、Jekins重启: http://localhost:8000/restart;
12、Ant的使用
1、ant的核心在build.xml文件;
2、示例,Ant编译java文件
(1)buil.xml内容:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
<target name="test-compile">
<javac srcdir="src" destdir="build/classes/" />
</target>
</project>
(2)执行ant test-compile命令,则将src文件夹下的java文件编文件存放在build/classes目录下;
3、示例,Ant 针对Web工程生成war包:
(1)build.xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="Webdemo" default="warFile" basedir=".">
<!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="Webdemo.war"></property>
<!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/WebContent/WEB-INF/lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${basedir}/build" />
<mkdir dir="${basedir}/build" />
</target>
<!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
<target name="compile" depends="clean">
<javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false">
<classpath refid="project.lib">
</classpath>
</javac>
</target>
<!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="compile">
<!-- 删除原有war包。 -->
<delete dir="${basedir}/${warFileName}" />
<!-- 建立新war包。 -->
<war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebContent/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<fileset dir="${basedir}/WebContent">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${basedir}/WebContent/WEB-INF/lib" />
<classes dir="${basedir}/build" />
</war>
</target>
</project>
(2)执行命令:ant clean compile warFile,则会生成Webdemo.war
4、注意:build.xml文件中涉及到的文件目录必须都存在,ant命令才能执行成功;