Jenkins + Ant + Git + Tomcat自動化部署

環境linux下,大體的配置內容以下:java

  1. 首先安裝JDK配置環境變量等。
  2. 其次安裝ANT配置ANT_HONE並把bin目錄加入PATH中。
  3. 而後安裝Git,並生成sshkey配置ssh
  4. 安裝tomcat,並配置用戶信息
  5. 最後下載jenkins.war包,部署到tomcat下。

 

1. 環境變量以下:

JAVA_HOME=/usr/local/jdk1.8.0_73
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ANT_HOME=/usr/local/apache-ant-1.9.7
PATH=$ANT_HOME/bin:$PATH
export ANT_HOME
export JAVA_HOME
export PATH
export CLASSPATH

2. 配置tomcat用信息以下:

<role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="admin" password="admin" roles="tomcat,role1,manager-gui,manager-script,manager-jmx,manager-status"/>

3. 生成SSH的操做

ssh-keygen -t rsa -C "xxxxxx@yy.com"

回車三次(無密碼) 在~/.ssh 文件夾下生成兩個文件,id_rsa  id_rsa.pub 其中pub表示公鑰,將公鑰添加到git 遠程庫中。私鑰須要添加到jenkins的配置中。linux

在jenkins頁面點擊Credentials,變添加私鑰信息在此處。git

3. jenkins配置

打開jenkins,初始化後,安裝以下插件(Ant、Deploy to container Plugin、Git)web

插件配置

在系統管理--Global Tool Configuration中進行配置git的執行路徑apache

image

ant的可執行路徑,以及ant的名稱tomcat

image

代碼中ant的build文件

樣例以下:ssh

<?xml version="1.0" encoding="UTF-8" ?>
<project name="palace" default="compile" basedir=".">
    <property name="tomcat.lib" value="/usr/local/apache-tomcat-8.0.24/lib" />
    <property name="dest.dir" value="WEB-INF/classes" />
    <property name="src.dir" value="src" />
    <!-- 定義屬性,打成war包的名稱。 -->  
    <property name="warFileName" value="palace.war"></property>  
    <target name="init">
        <mkdir dir="${dest.dir}" />
    </target>
    <target name="compile" depends="init">
        <javac srcdir="${src.dir}" destdir="${dest.dir}">
            <classpath>
                <fileset dir="${tomcat.lib}">
                    <include name="*.jar" />
                </fileset>
                <fileset dir="WebContent/WEB-INF/lib">
                    <include name="*.jar" />
                </fileset>
            </classpath>
        </javac>
    </target>
    
    <!-- 定義默認任務,將class文件集合成jar包。 -->  
    <target name="war" 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="${dest.dir}" />  
        </war>  
    </target>
    
    <target name="clean">
        <delete dir="${dest.dir}" />
    </target>
</project>

手動建立job

源碼管理配置(此處選擇上面添加的Credentials)ui

image

構建配置(選擇上述添加的名稱,另外targets可空,也可填寫本身要構建的target名稱,最後執行的命令爲spa

ant -file build.xml war(target名稱)

image

構建後操做,注意此處必須是**/*.war,(即便絕對路徑也會報錯)插件

image

相關文章
相關標籤/搜索