<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    在網上看到很多關于使用Jenkins構建持續集成環境的文章,在有空的時候也希望嘗試一下,這樣可以在測試服務器上看到提交的最新版本

    1.下載安裝Jenkins

    可以在http://mirrors.jenkins-ci.org上下載安裝包,也可以選擇在官網(https://jenkins.io)上下載war包(http://mirrors.jenkins.io/war-stable/latest/jenkins.war)或是安裝包(http://mirrors.jenkins-ci.org/windows/jenkins-2.38.zip),寫這篇文章時最新版本為2.38。如果選擇安裝包方式,下載后安裝即可,安裝完成后會自動啟動瀏覽器向導,根據提示操作完成安裝
    本機下載安裝包,安裝到C:\Jenkins,如下配置也是基于此目錄進行,下載及安裝過程截圖如下

    選擇Download Jenkins

    下拉選擇相應的操作系統版本,也可以直接下載war包,本文下載Windows版本的安裝包,安裝過程指定安裝目錄即可,安裝完成后,會自動啟動瀏覽器進行配置

    根據頁面提示,在文件中找到密碼填入

    選擇插件,本例選擇第二項,自己定義插件,打開第二項里的默認選擇和推薦插件一樣,如果不做修改,就相當于選擇推薦插件安裝

    安裝完成后,設置管理員賬號

    保存結束安裝

    點擊開始進入Jenkins界面

    2.啟動Jenkins

    Jenkins默認工作目錄會在當前用戶目錄下創建.jenkins目錄,也可以通過設置環境變量來修改,例如:
    set JENKINS_HOME=C:\jenkins
    然后重新啟動jenkins,可以放在與安裝目錄不同的地方
    進入安裝目錄C:\Jenkins,用命令行方式啟動
    java -jar jenkins.war
    默認端口為8080,如果需要指定端口,可以使用如下參數指定,如指定端口為9000
    java -jar jenkins.war --httpPort=9000
    也可以修改目錄下的jenkins.xml配置文件,將其中的httpPort修改即可
    <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>

    3.部署應用到Jenkins

    之前的工程是基于Tomcat+Eclipse開發的,工程不是用Maven管理的,后面就對工程進行了改造,用Ant編譯,添加了build.xml文件,在Ant中需要找到Tomcat目錄,為了靈活一點,在系統里添加了Tomcat的環境變量CATALINA_HOME,以及Ant環境的安裝,這是對原有工程的改造,如果新的工程采用Maven方式的話,應該會沒有這么麻煩,附上build.xml
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

    <project basedir="." default="build" name="xi">
        <property environment="env"/>
        <property name="tomcat.home" value="${env.CATALINA_HOME}" />
        <property name="tomcat.lib" value="${env.CATALINA_HOME}/lib" />
        <property name="web.root" value="${env.CATALINA_HOME}/webapps"/>
        <property name="ant.home" value="${env.ANT_HOME}" />
        <property name="debuglevel" value="source,lines,vars"/>
        <property name="target" value="1.7"/>
        <property name="source" value="1.7"/>
        <property name="webRoot.dir" value="${basedir}/WebContent" />
        <property name="src.dir" value="${basedir}/src" />
        <property name="lib.dir" value="${webRoot.dir}/WEB-INF/lib" />  
        <property name="log.file" value="${tomcat.home}/webapps/log.info"/> 

        <tstamp> 
            <format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" /> 
        </tstamp>


        <path id="prj.classpath">
            <pathelement location="build/classes"/>
            <fileset dir="${tomcat.lib}">  
                <include name="*.jar" />  
            </fileset>
            <fileset dir="${lib.dir}">  
                <include name="*.jar" />  
            </fileset>
        </path>
        <path id="tomcat.classpath">
            <fileset dir="${tomcat.lib}">  
                <include name="*.jar" />  
            </fileset>
            <fileset dir="${tomcat.home}/bin">  
                <include name="*.jar" />  
            </fileset>
        </path>

        <target name="init">
            <echo message="---------- init ----------"></echo>
            <mkdir dir="build/classes"/>
            <copy includeemptydirs="false" todir="build/classes">
                <fileset dir="src">
                    <exclude name="**/*.java"/>
                </fileset>
            </copy>
        </target>
        
        <target name="clean">
            <echo message="---------- clean ----------"></echo>
            <delete dir="build/classes"/>
            <delete file="build/${ant.project.name}.war"></delete>
        </target>

        <target name="compile" depends="init">
            <echo message="${ant.project.name}: ${ant.file}"/>
            <javac debug="true" debuglevel="${debuglevel}" destdir="build/classes" includeantruntime="false"  encoding="UTF-8">
                <src path="src"/>
                <classpath refid="prj.classpath"/>
            </javac>
            <delete file="build/classes/gen-conf.xml"/>
        </target>

        <target name="build" depends="compile" description="make war">
            <war destfile="build/${ant.project.name}.war" basedir="WebContent" webxml="WebContent/WEB-INF/web.xml">
                <!-- lib dir="${lib.dir}"></lib -->
                <classes dir="${basedir}/build/classes"></classes>
            </war>
        </target>

        <target name="deploy" depends="build" description="deploy to tomcat"> 
            <echo message="----------deploy to tomcat----------"></echo>
            <delete file="${tomcat.home}/webapps/${ant.project.name}.war" /> 
            <delete dir="${tomcat.home}/webapps/${ant.project.name}" /> 
            <copy file="build/${ant.project.name}.war" todir="${tomcat.home}/webapps" /> 
        </target>

        <target name="undeploy" description="deploy to tomcat"> 
            <echo message="---------- undeploy project ----------"></echo>
            <delete file="${tomcat.home}/webapps/${ant.project.name}.war" /> 
            <delete dir="${tomcat.home}/webapps/${ant.project.name}" /> 
        </target> 

        
    </project>
    這樣寫是為了在Jenkins里調用Ant完成編譯和部署的工作。
    在Jenkins里創建項目,當前選擇的是自由項目,寫好項目名稱,后續就是對項目進行配置,如果不希望保留過多的舊構建,可以設置丟棄。另外還需要獲取源碼的服務器,默認支持CVS和Subversion,也可以通過插件支持Git,因當前項目托管于SVN,配置如下圖

    后面是如何觸發的配置,如下設置為每天6:30進行構建,每一個小時檢查一下源碼,主要是獲取到代碼后的動作設置

    在動作設置里用Windows的批處理方式進行,原本考慮在服務器上做一個批處理,由Jenkins調用,經測試需要用絕對路徑,不知是不是某個地方沒配置好,后來就改用這種方式,對服務進行啟動停止控制,對工程進行部署
    經測試,此方式可以用,當前用來解決Tomcat+Eclipse環境下的工程自動構建問題,寫在這個地方做個記錄,如果有機會,嘗試一下Maven,看看是不是要簡單點
    主站蜘蛛池模板: 亚洲日韩国产欧美一区二区三区 | 亚洲jjzzjjzz在线观看| 可以免费观看的国产视频| 国产福利电影一区二区三区,亚洲国模精品一区 | 无人在线观看免费高清| 久久国产精品亚洲综合 | 免费激情网站国产高清第一页| 免费黄色小视频网站| 亚洲精品国产成人影院| 一级午夜a毛片免费视频| 亚洲国产精品无码久久久久久曰 | 亚洲综合一区国产精品| 浮力影院第一页小视频国产在线观看免费| 亚洲性色精品一区二区在线| 成年女人永久免费观看片| 亚洲欧洲日产国产综合网| 老汉精品免费AV在线播放| 亚洲国产亚洲综合在线尤物| 成人久久免费网站| 亚洲国产人成网站在线电影动漫| 久久久久久久99精品免费| 亚洲国产精品一区二区久| 日韩人妻无码免费视频一区二区三区 | 天天天欲色欲色WWW免费| 国产精品手机在线亚洲| 国产成人亚洲影院在线观看| 色欲国产麻豆一精品一AV一免费| 亚洲成A∨人片在线观看无码| 毛片免费全部播放一级| 爱情岛论坛免费视频| 亚洲成AV人片在线观看ww| 91免费国产在线观看| 国产99久久亚洲综合精品| 中文字幕不卡亚洲| 中文字幕免费观看| 看全免费的一级毛片| 久久精品亚洲视频| 免费高清资源黄网站在线观看| 久草免费福利在线| 色偷偷亚洲女人天堂观看欧| 亚洲精品成a人在线观看|