成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

hudson +gradle+git+maven(非必選)持續(xù)集成一 打包自動(dòng)化

xietao3 / 3474人閱讀

摘要:持續(xù)集成正是針對(duì)這一類問(wèn)題的一種軟件開(kāi)發(fā)實(shí)踐。持續(xù)集成的原則業(yè)界普遍認(rèn)同的持續(xù)集成的原則包括需要版本控制軟件保障團(tuán)隊(duì)成員提交的代碼不會(huì)導(dǎo)致集成失敗。

第一集 hudson+gradle+git+maven(非必選)持續(xù)集成編譯,打包,發(fā)布到倉(cāng)庫(kù)集成

前言 什么是持續(xù)集成

隨著軟件開(kāi)發(fā)復(fù)雜度的不斷提高,團(tuán)隊(duì)開(kāi)發(fā)成員間如何更好地協(xié)同工作以確保軟件開(kāi)發(fā)的質(zhì)量已經(jīng)慢慢成為開(kāi)發(fā)過(guò)程中不可回避的問(wèn)題。尤其是近些年來(lái),敏捷(Agile) 在軟件工程領(lǐng)域越來(lái)越紅火,如何能再不斷變化的需求中快速適應(yīng)和保證軟件的質(zhì)量也顯得尤其的重要。

持續(xù)集成正是針對(duì)這一類問(wèn)題的一種軟件開(kāi)發(fā)實(shí)踐。它倡導(dǎo)團(tuán)隊(duì)開(kāi)發(fā)成員必須經(jīng)常集成他們的工作,甚至每天都可能發(fā)生多次集成。而每次的集成都是通過(guò)自動(dòng)化的構(gòu)建來(lái)驗(yàn)證,包括自動(dòng)編譯、發(fā)布和測(cè)試,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤,讓團(tuán)隊(duì)能夠更快的開(kāi)發(fā)內(nèi)聚的軟件。
持續(xù)集成的核心價(jià)值在于:

1 持續(xù)集成中的任何一個(gè)環(huán)節(jié)都是自動(dòng)完成的,無(wú)需太多的人工干預(yù),有利于減少重復(fù)過(guò)程以節(jié)省時(shí)間、費(fèi)用和工作量;
2 持續(xù)集成保障了每個(gè)時(shí)間點(diǎn)上團(tuán)隊(duì)成員提交的代碼是能成功集成的。換言之,任何時(shí)間點(diǎn)都能第一時(shí)間發(fā)現(xiàn)軟件的集成問(wèn)題,使任意時(shí)間發(fā)布可部署的軟件成為了可能;
3 持續(xù)集成還能利于軟件本身的發(fā)展趨勢(shì),這點(diǎn)在需求不明確或是頻繁性變更的情景中尤其重要,持續(xù)集成的質(zhì)量能幫助團(tuán)隊(duì)進(jìn)行有效決策,同時(shí)建立團(tuán)隊(duì)對(duì)開(kāi)發(fā)產(chǎn)品的信心。

持續(xù)集成的原則

業(yè)界普遍認(rèn)同的持續(xù)集成的原則包括:

1)需要版本控制軟件保障團(tuán)隊(duì)成員提交的代碼不會(huì)導(dǎo)致集成失敗。常用的版本控制軟件有Subversion Git 等;

2)開(kāi)發(fā)人員必須及時(shí)向版本控制庫(kù)中提交代碼,也必須經(jīng)常性地從版本控制庫(kù)中更新代碼到本地;

3)需要有專門的集成服務(wù)器來(lái)執(zhí)行集成構(gòu)建。根據(jù)項(xiàng)目的具體實(shí)際,集成構(gòu)建可以被軟件的修改來(lái)直接觸發(fā),也可以定時(shí)啟動(dòng),如每半個(gè)小時(shí)構(gòu)建一次;

4)必須保證構(gòu)建的成功。如果構(gòu)建失敗,修復(fù)構(gòu)建過(guò)程中的錯(cuò)誤是優(yōu)先級(jí)最高的工作。一旦修復(fù),需要手動(dòng)啟動(dòng)一次構(gòu)建。

持續(xù)集成系統(tǒng)的組成

由此可見(jiàn),一個(gè)完整的構(gòu)建系統(tǒng)必須包括:

一個(gè)自動(dòng)構(gòu)建過(guò)程,包括自動(dòng)編譯、分發(fā)、部署和測(cè)試等。

一個(gè)代碼存儲(chǔ)庫(kù),即需要版本控制軟件來(lái)保障代碼的可維護(hù)性,同時(shí)作為構(gòu)建過(guò)程的素材庫(kù)。

一個(gè)持續(xù)集成服務(wù)器。本文中介紹的 Jenkins /Hudson 就是一個(gè)配置簡(jiǎn)單和使用方便的持續(xù)集成服務(wù)器。

實(shí)戰(zhàn)

準(zhǔn)備工作(centos 7 為例)

下載安裝

Hudson(戳一下進(jìn)入官網(wǎng))是一款輕量級(jí)、易擴(kuò)展、易配置的持續(xù)集成平臺(tái),該集成平臺(tái)maven2有良好的支持,并且擴(kuò)展插件豐富,包括findbug,PMD靜態(tài)分析插件、emma單元測(cè)試覆蓋率插件、junit測(cè)試報(bào)告插件等等。
下面我們以Hudson持續(xù)集成平臺(tái)為例,主要講解怎么安裝hudson和hudson擴(kuò)展插件的使用,并以maven2工程為例,建立新作業(yè)。

啟動(dòng)方式一

    nohup java -jar hudson-1.398.war >  hudson.log 2>&1 & // 啟動(dòng)hudson

啟動(dòng)方式二

下載Hudson的war包,http://hudson-ci.org/ 在tomcat環(huán)境里,在confCatalinalocalhost 中新建配置文件hudson.xml,配置如下


   

HudsonPath為hudson.war的目錄路徑。
啟動(dòng)tomcat,訪問(wèn)http://localhost:8080/hudson便能訪問(wèn)我們的持續(xù)集成應(yīng)用了。Jboss環(huán)境中,復(fù)制war包到default目錄下即可。如下為安裝好以后的hudson訪問(wèn)界面。

安裝插件

系統(tǒng)管理選擇管理插件


根據(jù)自己項(xiàng)目需要選擇需要安裝的插件,當(dāng)然hudson也支持自己開(kāi)發(fā)插件上傳,這里就不贅述。

系統(tǒng)配置

系統(tǒng)管理中進(jìn)入系統(tǒng)設(shè)置


由于使用了gradle進(jìn)行打包,上一步已經(jīng)安裝好了ant和gradle的插件。不過(guò)前提是安裝好了jdk,git,gradle等的運(yùn)行環(huán)境。具體怎么安裝這里也不贅述,你可以去去問(wèn)GG(google)

新建任務(wù)(job)

這里講解兩種,在我們的項(xiàng)目中也是有兩種包,一種是jar包,也就是一些基礎(chǔ)jar包,需要提供給其它項(xiàng)目使用。
另一種是服務(wù)包(tar),里面有4種內(nèi)容,配置文件,自身的jar包,依賴的libs包,和相關(guān)的腳本(gradle和啟服停服腳本)

基礎(chǔ)的jar包(舉例)

配置job明細(xì)如下:

配置任務(wù)信息

配置腳本

由于每次發(fā)布jar到maven私服需要手動(dòng)打開(kāi)Nexus移除陳舊的jar包,這樣比較耽誤時(shí)間,這里補(bǔ)充一個(gè)shell腳本配置方式,在每次打發(fā)布jar包前,將maven私服中對(duì)應(yīng)的jar包移除掉,再執(zhí)行打包發(fā)布.配置如下:


[注意:這里是hudson和maven私服是在同一個(gè)服務(wù)器上,如果不是得需ssh上去進(jìn)行相應(yīng)的操作]

拉取最新的代碼到本地倉(cāng)庫(kù),配置如下:


[注意:/fishsaying/admin/code_server.txt這個(gè)文件是用來(lái)配置需要打包的代碼的分支 配置好的效果如圖所示]

git倉(cāng)庫(kù)配置

需要將遠(yuǎn)程倉(cāng)庫(kù)的代碼克隆到本地服務(wù)器,如/fishsaying/build_dir/sys
編寫腳本獲取需要?jiǎng)討B(tài)選擇的分支的最新代碼到本地 代碼如下

gradle腳本編寫

利用groovy語(yǔ)音編寫,不會(huì)的小伙伴可以學(xué)習(xí)一下這個(gè)在安卓開(kāi)發(fā)中常用
build.gradle腳本文件如下

apply plugin: "java"
apply plugin: "maven-publish"

// 設(shè)置 JDK 版本
sourceCompatibility = 1.8
targetCompatibility = 1.8
//打包的版本
def _version = System.properties["version"];

// 設(shè)置編譯使用utf-8編碼
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
//maven倉(cāng)庫(kù)地址
repositories {
    maven {
        url "http://192.168.3.108:8081/nexus/content/groups/public/"
    }
}
//依賴的第三方j(luò)ar包
dependencies {
compile "com.fasterxml.jackson.core:jackson-annotations:2.4.0",
"com.fasterxml.jackson.core:jackson-core:2.3.3",
"com.fish.saying:fishsaying-log-sdk:2.0.0"
testCompile "junit:junit:3.8.1"
}
//說(shuō)明打包成jar文件
task apiJar(type: Jar) {
    baseName "fishsaying"
    from sourceSets.main.output
}
//推送到maven私服 設(shè)置好骨架
publishing {
    publications {
        api(MavenPublication) {
            groupId "com.fs.fishsaying-service-api"
            artifactId "fishsaying-service-api"
            version _version
            from components.java
        }
    }
}
//制定需要deploy的maven倉(cāng)庫(kù)地址
publishing {
    repositories {
        maven {
            url "http://192.168.3.108:8081/nexus/content/repositories/thirdparty/"
            credentials {
                username "admin"
                password "admin123"
            }
        }
    }
}

補(bǔ)充:如何搭建maven私服請(qǐng)google這里不再贅述。
整個(gè)流程做完就可以進(jìn)行打包工作,這里選擇的是手動(dòng)打包,持續(xù)集成中的第一步完成,后續(xù)增加自動(dòng)部署,測(cè)試,上線的內(nèi)容,敬請(qǐng)期待……^_^

小福利:持續(xù)集成

小福利:推薦一部美劇 《硅谷黑歷史》 為什么?因?yàn)槔锩娴某绦騿T哥們也是用的這個(gè)工具h(yuǎn)udson 點(diǎn)擊下載 ……^_^

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64822.html

相關(guān)文章

  • hudson+gradle+git+maven(必選)持續(xù)集成 (二)

    摘要:第二集非必選持續(xù)集成編譯打包部署到線上環(huán)境集成前言在持續(xù)集成第一集中講解了關(guān)于如果編譯,打包,發(fā)布包到私服。在下面一集中,也就是第二集中,開(kāi)始講解如何持續(xù)集成可運(yùn)行的服務(wù)包到測(cè)試和正式環(huán)境。 第二集 hudson+gradle+git+maven(非必選)持續(xù)集成編譯,打包,部署到線上環(huán)境集成 前言 在持續(xù)集成第一集中,講解了關(guān)于如果編譯,打包,發(fā)布jar包到maven私服。在下面一集...

    william 評(píng)論0 收藏0
  • Docker容器系列教程(三):jenkins環(huán)境搭建與插件安裝

    摘要:本文將使用這些命令搭建一個(gè)持續(xù)集環(huán)境,解決不能聯(lián)網(wǎng)的問(wèn)題來(lái)安裝各種常用插件??偨Y(jié)通過(guò)本章學(xué)習(xí),你已經(jīng)知道了基于如何在環(huán)境下搭建環(huán)境,并創(chuàng)建一個(gè)項(xiàng)目。以為基礎(chǔ)框架,為數(shù)據(jù)訪問(wèn)層,為權(quán)限授權(quán)層,對(duì)常用數(shù)據(jù)進(jìn)行緩存,基于構(gòu)建的作為前端框架。 回顧:上一文對(duì)Docker常用的命令以羅列的方式做了一個(gè)詳盡的介紹。本文將使用這些命令搭建一個(gè)jenkins持續(xù)集環(huán)境,解決jenkins不能聯(lián)網(wǎng)的問(wèn)題...

    vvpvvp 評(píng)論0 收藏0
  • Java軟件架構(gòu)師需要掌握的開(kāi)源工具

    摘要:軟件架構(gòu)師需要掌握的開(kāi)源工具的是當(dāng)前敏捷開(kāi)發(fā)領(lǐng)域最重要的工具之一。主要用于持續(xù)自動(dòng)地構(gòu)建測(cè)試軟件項(xiàng)目,如與。監(jiān)控一些定時(shí)執(zhí)行的任務(wù)。是應(yīng)用程序最好的軟件測(cè)試框架之一。是一種自由和開(kāi)放源碼的類操作系統(tǒng) Java軟件架構(gòu)師需要掌握的開(kāi)源工具1. JIRAAtlassian的JIRA是當(dāng)前敏捷開(kāi)發(fā)領(lǐng)域最重要的工具之一。它用于錯(cuò)誤...

    genefy 評(píng)論0 收藏0
  • 使用 DaoCloud 與 FIR.im 為 CodingAndroid 項(xiàng)目開(kāi)啟持續(xù)集成的嘗試

    摘要:所以一直沒(méi)能把持續(xù)集成搞起來(lái)。后來(lái)接觸到,所以嘗試了一下把持續(xù)集成搭建在上了,通過(guò)下面這幾步就可以實(shí)現(xiàn)項(xiàng)目有新的提交后自己編譯發(fā)布測(cè)試包到上了。 由于本人精力有限,如果內(nèi)容有更新可能無(wú)法及時(shí)更新其他渠道的內(nèi)容,請(qǐng)移步簡(jiǎn)書(shū) 查看文章 由于之前公司項(xiàng)目一直迭代速度很快,幾乎隔幾天就需要發(fā)布測(cè)試包給同事們進(jìn)行測(cè)試,所以希望把打包Apk這個(gè)工作交給機(jī)器來(lái)做,然后就嘗試了幾種持續(xù)集成的方案,最常...

    renweihub 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<