持續集成,持續交付,持續部署。java
持續集成:對源代碼進行自動化編譯、測試、代碼檢查,以及打包程序、部署(發佈)到應用服務器上。主要使用jenkins。linux
經過主幹開發分支發佈進行,首先從主幹上拉取代碼到本地進行開發,代碼修改完成定點將代碼合入到主幹後進行編譯掃描,跑自動化測試任務。自動化測試包括單元測試、集成測試、系統測試、驗收測試、性能測試等。web
Jenkins:shell
配置項目配置任務流配置任務。windows
主要在於任務的管理,有拉取代碼任務,掃描任務,編譯等。可經過使用ant腳本或者shell腳本或者其餘腳本實現各功能。api
Ant腳本是一個基於開放的操做系統構建和部署的工具,用xml的文檔來編寫,就如linux下的shell腳本,windows下的cmd命令。經過一個xml文件來制定一系列文件的建立刪除任務、編譯任務、運行任務、測試任務、打包任務等。咱們能夠經過ant指令執行這個xml腳本,來批處理這些任務,這樣就能夠實現「一鍵」完成編碼後的編譯、運行、測試、打包導出等工做,使咱們能夠更加專一於代碼的編寫與質量。服務器
ps:ant的使用和學習:https://www.w3cschool.cn/ant less
<?xml version="1.0"?> <project name="pro" default="info2">
<copy file="C:/Users/user/Desktop/startup.txt" tofile="C:/Users/user/Desktop/copy.txt"/> 拷貝文件
<path id="build.classpath"> <fileset dir="lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/> </path>
<target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes" encoding="UTF-8" includes="com/**"> <classpath refid="build.classpath" /> </javac> </target> 使用ant編譯java項目。將build.xml存放於項目下,跑命令跑該腳本 ant -buildfile xml路徑
<property name="sitename" value="www.xxxxx.com"/> 屬性至關於參數定義 <target name="info2" depends="info1"> 可包含多個target,每一個target就是一個任務,target中有name、depends、description、if、unless <echo>測試</echo> </target> <target name="info1" depends="info"> <echo>掃描</echo> </target> <target name="info" > <echo>編譯 ${sitename} ${ant.project.name}</echo> 參數的使用 ant的預約義屬性也能夠使用。 </target> </project>
java用來運行一個.class文件 java -buildfile xxx.java工具
javadoc用來生成api文檔性能
jar用來生成jar包
javac用來把.java文件編譯爲.class文件 java xxx
初始化、編譯、打包
<?xml version="1.0" encoding="UTF-8"?> <project name="ant_web_hello" default="jar" > <target name="init"> <mkdir dir="build/classes"/> </target> <!-- 定義編譯時的classpath --> <path id="compile.path"> <fileset dir="webContent/WEB-INF/lib" includes="*.lib"> </fileset> </path> <target name="compile" description="編譯源文件" depends="init" > <javac srcdir="src" destdir="build/classes" source="1.5" target="1.5"> <classpath refid="compile.path" /> </javac> <echo>編譯完成!</echo> </target> <target name="jar" depends="compile"> <jar destfile="webContent/WEB-INF/lib/util.jar" > </jar> <echo>打包完成!</echo> </target> <target name="clean" description="清理" depends="jar"> <delete dir="build/classes" /> <echo>清理完成!</echo> </target> </project>
Jenkins配置: 使用的是java語言寫的代碼,代碼開發時使用jdk1.8版本,服務器使用1.7版本,須要更新jdk版本。下載安裝jdk,在環境變量中配置環境變量。 環境變量配置時找到jdk地址,以後設置參數進行修改。 在cmd命令中確認java的版本,java -version 在出現java.lang.ArrayIndexOutOfBoundsException: 5 問題時,是參數有問題,
<path id="build.classpath"> <fileset dir="lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/></path>