国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

xietao3 / 3465人閱讀

摘要:持續集成正是針對這一類問題的一種軟件開發實踐。持續集成的原則業界普遍認同的持續集成的原則包括需要版本控制軟件保障團隊成員提交的代碼不會導致集成失敗。

第一集 hudson+gradle+git+maven(非必選)持續集成編譯,打包,發布到倉庫集成

前言 什么是持續集成

隨著軟件開發復雜度的不斷提高,團隊開發成員間如何更好地協同工作以確保軟件開發的質量已經慢慢成為開發過程中不可回避的問題。尤其是近些年來,敏捷(Agile) 在軟件工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證軟件的質量也顯得尤其的重要。

持續集成正是針對這一類問題的一種軟件開發實踐。它倡導團隊開發成員必須經常集成他們的工作,甚至每天都可能發生多次集成。而每次的集成都是通過自動化的構建來驗證,包括自動編譯、發布和測試,從而盡快地發現集成錯誤,讓團隊能夠更快的開發內聚的軟件。
持續集成的核心價值在于:

1 持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利于減少重復過程以節省時間、費用和工作量;
2 持續集成保障了每個時間點上團隊成員提交的代碼是能成功集成的。換言之,任何時間點都能第一時間發現軟件的集成問題,使任意時間發布可部署的軟件成為了可能;
3 持續集成還能利于軟件本身的發展趨勢,這點在需求不明確或是頻繁性變更的情景中尤其重要,持續集成的質量能幫助團隊進行有效決策,同時建立團隊對開發產品的信心。

持續集成的原則

業界普遍認同的持續集成的原則包括:

1)需要版本控制軟件保障團隊成員提交的代碼不會導致集成失敗。常用的版本控制軟件有Subversion Git 等;

2)開發人員必須及時向版本控制庫中提交代碼,也必須經常性地從版本控制庫中更新代碼到本地;

3)需要有專門的集成服務器來執行集成構建。根據項目的具體實際,集成構建可以被軟件的修改來直接觸發,也可以定時啟動,如每半個小時構建一次;

4)必須保證構建的成功。如果構建失敗,修復構建過程中的錯誤是優先級最高的工作。一旦修復,需要手動啟動一次構建。

持續集成系統的組成

由此可見,一個完整的構建系統必須包括:

一個自動構建過程,包括自動編譯、分發、部署和測試等。

一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫。

一個持續集成服務器。本文中介紹的 Jenkins /Hudson 就是一個配置簡單和使用方便的持續集成服務器。

實戰

準備工作(centos 7 為例)

下載安裝

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

啟動方式一

    nohup java -jar hudson-1.398.war >  hudson.log 2>&1 & // 啟動hudson

啟動方式二

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


   

HudsonPath為hudson.war的目錄路徑。
啟動tomcat,訪問http://localhost:8080/hudson便能訪問我們的持續集成應用了。Jboss環境中,復制war包到default目錄下即可。如下為安裝好以后的hudson訪問界面。

安裝插件

系統管理選擇管理插件


根據自己項目需要選擇需要安裝的插件,當然hudson也支持自己開發插件上傳,這里就不贅述。

系統配置

系統管理中進入系統設置


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

新建任務(job)

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

基礎的jar包(舉例)

配置job明細如下:

配置任務信息

配置腳本

由于每次發布jar到maven私服需要手動打開Nexus移除陳舊的jar包,這樣比較耽誤時間,這里補充一個shell腳本配置方式,在每次打發布jar包前,將maven私服中對應的jar包移除掉,再執行打包發布.配置如下:


[注意:這里是hudson和maven私服是在同一個服務器上,如果不是得需ssh上去進行相應的操作]

拉取最新的代碼到本地倉庫,配置如下:


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

git倉庫配置

需要將遠程倉庫的代碼克隆到本地服務器,如/fishsaying/build_dir/sys
編寫腳本獲取需要動態選擇的分支的最新代碼到本地 代碼如下

gradle腳本編寫

利用groovy語音編寫,不會的小伙伴可以學習一下這個在安卓開發中常用
build.gradle腳本文件如下

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

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

// 設置編譯使用utf-8編碼
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
//maven倉庫地址
repositories {
    maven {
        url "http://192.168.3.108:8081/nexus/content/groups/public/"
    }
}
//依賴的第三方jar包
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"
}
//說明打包成jar文件
task apiJar(type: Jar) {
    baseName "fishsaying"
    from sourceSets.main.output
}
//推送到maven私服 設置好骨架
publishing {
    publications {
        api(MavenPublication) {
            groupId "com.fs.fishsaying-service-api"
            artifactId "fishsaying-service-api"
            version _version
            from components.java
        }
    }
}
//制定需要deploy的maven倉庫地址
publishing {
    repositories {
        maven {
            url "http://192.168.3.108:8081/nexus/content/repositories/thirdparty/"
            credentials {
                username "admin"
                password "admin123"
            }
        }
    }
}

補充:如何搭建maven私服請google這里不再贅述。
整個流程做完就可以進行打包工作,這里選擇的是手動打包,持續集成中的第一步完成,后續增加自動部署,測試,上線的內容,敬請期待……^_^

小福利:持續集成

小福利:推薦一部美劇 《硅谷黑歷史》 為什么?因為里面的程序員哥們也是用的這個工具hudson 點擊下載 ……^_^

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64822.html

相關文章

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

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

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

    摘要:本文將使用這些命令搭建一個持續集環境,解決不能聯網的問題來安裝各種常用插件。總結通過本章學習,你已經知道了基于如何在環境下搭建環境,并創建一個項目。以為基礎框架,為數據訪問層,為權限授權層,對常用數據進行緩存,基于構建的作為前端框架。 回顧:上一文對Docker常用的命令以羅列的方式做了一個詳盡的介紹。本文將使用這些命令搭建一個jenkins持續集環境,解決jenkins不能聯網的問題...

    vvpvvp 評論0 收藏0
  • Java軟件架構師需要掌握的開源工具

    摘要:軟件架構師需要掌握的開源工具的是當前敏捷開發領域最重要的工具之一。主要用于持續自動地構建測試軟件項目,如與。監控一些定時執行的任務。是應用程序最好的軟件測試框架之一。是一種自由和開放源碼的類操作系統 Java軟件架構師需要掌握的開源工具1. JIRAAtlassian的JIRA是當前敏捷開發領域最重要的工具之一。它用于錯誤...

    genefy 評論0 收藏0
  • 使用 DaoCloud 與 FIR.im 為 CodingAndroid 項目開啟持續集成的嘗試

    摘要:所以一直沒能把持續集成搞起來。后來接觸到,所以嘗試了一下把持續集成搭建在上了,通過下面這幾步就可以實現項目有新的提交后自己編譯發布測試包到上了。 由于本人精力有限,如果內容有更新可能無法及時更新其他渠道的內容,請移步簡書 查看文章 由于之前公司項目一直迭代速度很快,幾乎隔幾天就需要發布測試包給同事們進行測試,所以希望把打包Apk這個工作交給機器來做,然后就嘗試了幾種持續集成的方案,最常...

    renweihub 評論0 收藏0

發表評論

0條評論

xietao3

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<