亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談android nexus私服的使用

 更新時(shí)間:2017年12月05日 10:17:39   作者:LaxusJ  
這篇文章主要介紹了淺談android nexus私服的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

先嘮叨幾句啊,由于公司私服已經(jīng)搭好了我就不費(fèi)那勁琢磨搭建私服的事了,直接開(kāi)擼上傳lib。下圖是我放組件庫(kù)的地方,本來(lái)想一個(gè)module拉出一個(gè)項(xiàng)目來(lái)維護(hù),后來(lái)想想實(shí)在是麻煩,同時(shí)維護(hù)多個(gè)庫(kù)就要down多個(gè)庫(kù)下來(lái),于是就統(tǒng)一管理了。當(dāng)然統(tǒng)一維護(hù)module多了自然會(huì)影響編譯的速度,可以在settings.gradle 里將不編譯的module注釋掉就可以了。現(xiàn)在就有圖片選擇、表情、輸入框、星星、視頻錄制、裁切等七七八八個(gè)庫(kù),至于后面組件庫(kù)多了可能會(huì)分類(lèi)按類(lèi)型拉出幾個(gè)項(xiàng)目來(lái)管理,要不版本控制也是個(gè)麻煩事。目前就是升級(jí)一個(gè)module在git上打個(gè)tag標(biāo)簽。大家有啥好的建議歡迎留言哈。

Nexus是一個(gè)基于maven的倉(cāng)庫(kù)管理的社區(qū)項(xiàng)目.主要的使用場(chǎng)景就是可以在局域網(wǎng)搭建一個(gè)maven私服,用來(lái)部署第三方公共構(gòu)件或者作為遠(yuǎn)程倉(cāng)庫(kù)在該局域網(wǎng)的一個(gè)代理.簡(jiǎn)單舉幾個(gè)例子就是:

1.第三方Jar包可以放在nexus上,項(xiàng)目可以直接通過(guò)Url和路徑配置直接引用.方便進(jìn)行統(tǒng)一管理.

2.同時(shí)有多個(gè)項(xiàng)目在開(kāi)發(fā)的時(shí)候,一些共用基礎(chǔ)模塊可以單獨(dú)抽取到nexus上,需要用的項(xiàng)目直接從nexus上拉取就行(基礎(chǔ)模塊的實(shí)現(xiàn),維護(hù)和部署可以交給專(zhuān)門(mén)的人員,其他項(xiàng)目不用關(guān)心代碼實(shí)現(xiàn),這樣也可以達(dá)到保證核心代碼不泄露).

3.一些封閉開(kāi)發(fā)的過(guò)程中開(kāi)發(fā)機(jī)是不能上公網(wǎng)的,所以連接central repository和下載jar就比較麻煩,這時(shí)就可以用nexus搭建起來(lái)一個(gè)介于公網(wǎng)和局域網(wǎng)之間的橋梁.

接下來(lái)就簡(jiǎn)單介紹一下nexus的搭建以及在android項(xiàng)目中使用nexus的方式.

項(xiàng)目展示.png

發(fā)布Library到私服

我們就以functionbar這個(gè)組件庫(kù)為例吧

配置nexus賬戶(hù)信息

因?yàn)镹exus相關(guān)參數(shù)是固定的,包含倉(cāng)庫(kù)地址、用戶(hù)名和密碼,從安全性考慮我們把這些參數(shù)寫(xiě)到gradle的Global配置中,目錄是C:\Users(用戶(hù)名).gradle\gradle.properties

NEXUS_USERNAME=username
NEXUS_PASSWORD=password
NEXUS_REPOSITORY_URL=http://xxx/nexus/repository/maven-releases/

配置pom參數(shù)

項(xiàng)目根目錄下的gradle.properties中添加如下pom參數(shù)

//依賴(lài)庫(kù)名稱(chēng)
POM_NAME=functionbar
//版本號(hào)
POM_VERSION=1.0.1
//類(lèi)別
POM_ARTIFACTID=utils
//組id
POM_GROUPID=com.app
//打包類(lèi)型
POM_PACKAGING=aar

引入gradle腳本

在library的build.gradle文件末尾加上如下引用,當(dāng)然這個(gè)文件需要?jiǎng)?chuàng)建放到項(xiàng)目根路徑,源碼在腳本解讀中

apply from: '../nexus_upload.gradle'

這個(gè)nexus_upload.gradle腳本包含生成java-source和java-doc,如果注釋不完整可以注釋掉腳本里的androidJavadocsJar調(diào)用,避免影響上傳。

發(fā)布

雙擊右側(cè)gradle task中的uploadArchives,編譯并上傳library

up.png

等待一會(huì)出現(xiàn)Success字樣,證明已經(jīng)上傳成功

success.png

最后我們?nèi)exus上驗(yàn)證下,bingo!上傳成功。


腳本解讀

//依賴(lài)maven插件
apply plugin: 'maven'

task androidJavadocs(type: Javadoc) {
  options.encoding = "utf-8"
  source = android.sourceSets.main.java.srcDirs
  classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
  classifier = 'javadoc'
  from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
  classifier = 'sources'
  from android.sourceSets.main.java.srcDirs
}

artifacts {
  archives androidSourcesJar
  //如果項(xiàng)目javadoc不全會(huì)報(bào)錯(cuò),可以注釋掉
  archives androidJavadocsJar
}

uploadArchives {
  repositories {
    mavenDeployer {
      //倉(cāng)庫(kù)地址
      repository(url: NEXUS_REPOSITORY_URL) {
        //私服賬戶(hù)信息
        authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
      }
      //pom必需的參數(shù)
      pom.project {
        name POM_NAME
        version POM_VERSION
        artifactId POM_ARTIFACTID
        groupId POM_GROUPID
        packaging POM_PACKAGING
      }
    }
  }
}

使用私服上的Library

首先,要在項(xiàng)目的build.gradle里面聲明私服的地址

allprojects {
  repositories {
    jcenter()
    mavenCentral()
    maven { url NEXUS_REPOSITORY_URL}
  }
}

然后就是我們最熟悉的在module的build.gradle文件中添加依賴(lài),注意 groupId后面是:依賴(lài)庫(kù)名稱(chēng)后面要加:和版本號(hào),我就犯過(guò)引用是groupId后面寫(xiě). 的錯(cuò)誤。

compile 'com.app:functionbar:1.0.1

發(fā)布Plugin(插件)到私服

發(fā)布步驟是和library一樣的只不過(guò)需要提一點(diǎn),腳本信息需要做一些刪減,只用到以下這些。

apply plugin: 'maven'
uploadArchives {
  repositories {
    mavenDeployer {
      //倉(cāng)庫(kù)地址
      repository(url: NEXUS_REPOSITORY_URL) {
        //私服賬戶(hù)信息
        authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
      }
      //pom必需的參數(shù)
      pom.project {
        name POM_NAME
        version POM_VERSION
        artifactId POM_ARTIFACTID
        groupId POM_GROUPID
        packaging POM_PACKAGING
      }
    }
  }
}

使用私服上的Plugin

首先,要在項(xiàng)目的build.gradle里面配置classpath引用,就拿經(jīng)典的小刀舉例吧

buildscript {
  
  repositories {
    jcenter()
    maven { url NEXUS_REPOSITORY_URL}
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
    ...
  }
}

然后在module中build.gradle引用插件plugin

apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.butterknife'

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android端“被擠下線”功能的單點(diǎn)登錄實(shí)現(xiàn)

    Android端“被擠下線”功能的單點(diǎn)登錄實(shí)現(xiàn)

    本篇文章主要介紹了Android端“被擠下線”功能的單點(diǎn)登錄實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Intent傳遞對(duì)象之Serializable和Parcelable的區(qū)別

    Intent傳遞對(duì)象之Serializable和Parcelable的區(qū)別

    Intent在不同的組件中傳遞對(duì)象數(shù)據(jù)的應(yīng)用非常普遍,大家都知道在intent傳遞對(duì)象的方法有兩種:1、實(shí)現(xiàn)Serializable接口、2、實(shí)現(xiàn)Parcelable接口,接下來(lái)通過(guò)本文給大家介紹Intent傳遞對(duì)象之Serializable和Parcelable的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • android 仿微信demo——微信通訊錄界面功能實(shí)現(xiàn)(移動(dòng)端,服務(wù)端)

    android 仿微信demo——微信通訊錄界面功能實(shí)現(xiàn)(移動(dòng)端,服務(wù)端)

    本系列文章主要介紹了微信小程序-閱讀小程序?qū)嵗╠emo),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望能給你們提供幫助
    2021-06-06
  • Android中imageview.ScaleType使用方法詳細(xì)介紹

    Android中imageview.ScaleType使用方法詳細(xì)介紹

    這篇文章主要介紹了Android中imageview.ScaleType使用方法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單

    Android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單

    本文主要介紹了android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Android Compose實(shí)現(xiàn)聯(lián)系人列表流程

    Android Compose實(shí)現(xiàn)聯(lián)系人列表流程

    聲明式UI,更簡(jiǎn)單的自定義,實(shí)時(shí)帶交互的預(yù)覽功能Compose并不是類(lèi)似于Recyclerview的高級(jí)控件,而是直接拋棄了View,ViewGroup那套東西,從上到下魯了一套全新的框架,直白點(diǎn)說(shuō)就是它的渲染機(jī)制,布局機(jī)制,觸摸算法,以及UI具體寫(xiě)法全都是新的
    2023-03-03
  • Android 第三方應(yīng)用接入微信平臺(tái)研究情況分享(一)

    Android 第三方應(yīng)用接入微信平臺(tái)研究情況分享(一)

    微信平臺(tái)開(kāi)放后倒是挺火的,許多第三方應(yīng)用都想試下接入微信這個(gè)平臺(tái),畢竟可以利用微信建立起來(lái)的關(guān)系鏈來(lái)拓展自己的應(yīng)用還是挺不錯(cuò)的 最近由于實(shí)習(xí)需要也在研究這個(gè)東西,這里把我的整個(gè)研究情況給出來(lái)
    2013-01-01
  • Android中Protobuf的基本使用介紹

    Android中Protobuf的基本使用介紹

    大家好,本篇文章主要講的是Android中Protobuf的基本使用介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Android 自動(dòng)補(bǔ)全提示輸入AutoCompleteTextView、 MultiAutoCompleteTextView

    Android 自動(dòng)補(bǔ)全提示輸入AutoCompleteTextView、 MultiAutoCompleteTextV

    本文主要介紹了Android自動(dòng)補(bǔ)全提示輸入AutoCompleteTextView、 MultiAutoCompleteTextView,具有一定的參考作用,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • 詳解Android ViewPager2中的緩存和復(fù)用機(jī)制

    詳解Android ViewPager2中的緩存和復(fù)用機(jī)制

    最近接觸到豎向整頁(yè)滑動(dòng)的需求,發(fā)現(xiàn)了viewpager2,viewpager2支持fragment,保留了viewpager的特性,下面這篇文章主要給大家介紹了關(guān)于ViewPager2中的緩存和復(fù)用機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2021-11-11

最新評(píng)論