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

資訊專欄INFORMATION COLUMN

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

william / 2455人閱讀

摘要:第二集非必選持續(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私服。在下面一集中,也就是第二集中,開(kāi)始講解
如何持續(xù)集成可運(yùn)行的服務(wù)包到測(cè)試和正式環(huán)境。

實(shí)戰(zhàn) 第一步 準(zhǔn)備工作

進(jìn)入hudson Jobs Status 主頁(yè),如圖所示:

這里我以用戶登陸服務(wù)作為例子進(jìn)行操作講解,如圖所示:

點(diǎn)擊Console -> 再點(diǎn)擊左側(cè)菜單的Configure Job 進(jìn)入Job Configurations主頁(yè)
圖1

圖2

圖3

接下來(lái)也就是重點(diǎn)了,結(jié)合腳本一一講解整個(gè)服務(wù)包(tar包)如何生成并且上傳線上服務(wù)器

第二步 具體參數(shù)配置

[特別注意:下面配置的參數(shù)前面4個(gè)需要結(jié)合最后貼出的gradle腳本一起使用,參數(shù)是傳遞給gradle腳本使用的。]

1.配置代碼的git分支參數(shù)

2.配置打包存放的目錄參數(shù)

3.配置當(dāng)前打包的版本參數(shù)

4.設(shè)置打包時(shí)是否要加入第三方j(luò)ar包

5.設(shè)置需要打包的類型

6.設(shè)置需要部署的服務(wù)器參數(shù)

第三步 配置git倉(cāng)庫(kù)最新代碼的shell腳本

配置bulid的腳本 這里的腳本主要是獲取git倉(cāng)庫(kù)中的最新代碼,操作如下:

第四步 配置gradle打包的腳本文件

第五步 配置讀取打包類型和執(zhí)行部署shell,python腳本

[補(bǔ)充:具體如何調(diào)用python以及如何編寫(xiě)python這里就不貼出來(lái)了,可以去問(wèn)Google哦]

最后 gradle 登場(chǎng)

gradle腳本代碼,供參考哦

apply plugin: "java"
apply plugin: "eclipse"

version = "1.0"

// 定義發(fā)布包的路徑
def releaseDir = System.properties["deployToDir"]
def gitBranch = System.properties["gitBranch"];
def myZipName = gitBranch.replace("/","-") + "-" + new Date().getTime();
def bigVer = System.properties["bigVer"];
def isCommonLibs = System.properties["commonLibs"];
// 設(shè)置 Java 源碼所在目錄
sourceSets.main.resources.srcDirs "config"

// 設(shè)置 JDK 版本
sourceCompatibility = 1.8
targetCompatibility = 1.8

// 設(shè)置編譯使用utf-8編碼
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
//maven倉(cāng)庫(kù)地址
repositories {
    maven {
        url "http://ip:8081/nexus/content/groups/public/"
    }
}
// 依賴jar包
dependencies {
    compile "commons-logging:commons-logging:1.1.1", 
            "org.javassist:javassist:3.20.0-GA",  
            "log4j:log4j:1.2.15",
            "org.springframework:spring-core:4.2.1.RELEASE",
            "org.springframework:spring-context:4.2.1.RELEASE",
            "org.slf4j:slf4j-api:1.7.6",
            "org.slf4j:slf4j-log4j12:1.6.1",
            "com.fs.fishsaying-service-api:fishsaying-service-api:0.0.2",
            "com.google.guava:guava:18.0",
            "com.fs.common:fs-common-service:0.0.1",
            "commons-io:commons-io:2.4",
            "org.jboss.resteasy:resteasy-netty4:3.0.12.Final",
            "org.jboss.resteasy:resteasy-guice:3.0.12.Final",
            "org.apache.commons:commons-lang3:3.4",
            "com.fs.fs-common-db:fs-common-db:0.0.1",
            "com.eclipse.java:javax-persistence:2.1.0",
            "org.msgpack:msgpack:0.6.12",
            "redis.clients:jedis:2.7.3",
            "mysql:mysql-connector-java:5.1.36",
            "com.eclipse.java:eclipselink:2.6.0",
            "org.jboss.resteasy:resteasy-jackson-provider:2.3.5.Final",
            "io.netty:netty-all:4.0.31.Final",
            "com.fishsaying:common-pool3:0.0.1",
            "com.google.code.gson:gson:2.2.2",
            "com.fasterxml.jackson.core:jackson-annotations:2.6.3", 
            "com.fasterxml.jackson.core:jackson-core:2.6.3",
            "org.mongodb:mongodb-driver:3.0.4",
            "org.elasticsearch:elasticsearch:2.0.0",
            "com.fasterxml.jackson.core:jackson-databind:2.5.3",
            "com.aliyun.oss:oss:2.0.5",
            "sun.misc.BASE64Decoder:BASE64Decoder:1.0",
            "org.jboss.resteasy:resteasy-multipart-provider:2.3.1.GA",
            "net.sf.oval:oval:1.85",
            "com.aliyun.taobao:taobao-sdk:0.0.1",
            "com.aliyun.trance:aliyun-sdk:0.0.1",
            "com.alibaba:fastjson:1.2.4",
            "javax.mail:mail:1.4.7",
            "cn.jpush.api:jpush-client:3.2.8",
            "org.apache.httpcomponents:httpclient:4.5.1",
            "com.fish.saying:fishsaying-log-sdk:2.0.0",
            "org.quartz-scheduler:quartz:2.2.1",
            "org.quartz-scheduler:quartz-jobs:2.2.1"

    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-aop"
    }  
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-expression"
    }  
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-web"
    }  
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-beans"
    }       
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-core"
    }       
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.springframework", module: "spring-context"
    }  
    compile ("com.alibaba:dubbo:2.8.4") {
        exclude group:"org.apache.httpcomponents", module: "httpcore"
    }
    compile ("com.alibaba:dubbo:2.5.3") {
        exclude group:"org.springframework", module: "spring"
    } 
    compile ("com.alibaba:dubbo:2.5.3") {
        exclude group:"org.jboss.netty", module: "netty"
    } 
    compile ("org.apache.zookeeper:zookeeper:3.4.5") {
        exclude group:"org.jboss.netty", module: "netty"
    }     
    compile ("com.101tec:zkclient:0.6") {
        exclude group:"com.101tec", module: "netty"
    } 
    
    testCompile "junit:junit:3.8.1"
}

jar {
    exclude("app.properties","appContext.xml"
            ,"deploy.properties","deploy.properties.temp"
            ,"log4j.properties","provider.xml")
    manifest {
        attributes "Implementation-Title": "魚(yú)說(shuō)應(yīng)用", "Implementation-Version": version
        attributes "Main-Class": "com.fs.FishApp"
    }
}

uploadArchives {
    repositories {
        flatDir {
            dirs releaseDir+"fs_libs"
        }
    }
}

uploadArchives.doFirst {
    def destination = file(releaseDir)
    if(destination.exists()){
        destination.deleteDir();
    }
}
//gradle任務(wù)
task copyCommonLibs(type: Copy) {
    dependsOn uploadArchives
    from configurations.compile
    into releaseDir+"libs"
    exclude "spring-2.5.6*.jar"
}

task deleteOtherLibs(type: Copy) {
    dependsOn copyCommonLibs
    delete fileTree(dir: releaseDir+"libs"
    , exclude: ["fs-common-service-0.0.1.jar","fishsaying-service-api-0.0.2.jar","fs-common-db-0.0.1.jar"])
}
// 拷貝配置文件
task copyAppConfig(type: Copy) {
    dependsOn deleteOtherLibs
    from sourceSets.main.resources.srcDirs
    into releaseDir+"config"
    exclude "deploy.properties","META-INF","appContext.xml"
}
// 拷貝啟動(dòng)相關(guān)的shell
task copyShell(type: Copy) {
    dependsOn copyAppConfig
    from project.projectDir
    into releaseDir
    include "*.sh"
}

copyShell << {
    def destination = file(releaseDir+"logs/")
    destination.mkdirs();
}
// 壓縮任務(wù)
task zipApp(type: Tar) {//Zip
    dependsOn copyShell
    baseName = "fs-login-"+myZipName
    from releaseDir
}

deleteOtherLibs.onlyIf {
  isCommonLibs.equals("false")
}

持續(xù)集成部署就是這樣的一套操作流程,當(dāng)然還有很多的要完善的地方,這里只是講解了如何搭建這套工具平臺(tái)。接下來(lái)會(huì)不斷優(yōu)化并且會(huì)加入服務(wù)端自動(dòng)化單元測(cè)試,敬請(qǐng)期待第三集哈...thx ^_^

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64850.html

相關(guān)文章

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

    摘要:持續(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ò)程中不可回避的...

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

    摘要:本文將使用這些命令搭建一個(gè)持續(xù)集環(huán)境,解決不能聯(lián)網(wǎng)的問(wèn)題來(lái)安裝各種常用插件。總結(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
  • 使用 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
  • 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

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

0條評(píng)論

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