国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

淺談android nexus私服的使用

2019-10-22 18:21:22
字體:
來源:轉載
供稿:網友

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

Nexus是一個基于maven的倉庫管理的社區項目.主要的使用場景就是可以在局域網搭建一個maven私服,用來部署第三方公共構件或者作為遠程倉庫在該局域網的一個代理.簡單舉幾個例子就是:

1.第三方Jar包可以放在nexus上,項目可以直接通過Url和路徑配置直接引用.方便進行統一管理.

2.同時有多個項目在開發的時候,一些共用基礎模塊可以單獨抽取到nexus上,需要用的項目直接從nexus上拉取就行(基礎模塊的實現,維護和部署可以交給專門的人員,其他項目不用關心代碼實現,這樣也可以達到保證核心代碼不泄露).

3.一些封閉開發的過程中開發機是不能上公網的,所以連接central repository和下載jar就比較麻煩,這時就可以用nexus搭建起來一個介于公網和局域網之間的橋梁.

接下來就簡單介紹一下nexus的搭建以及在android/278219.html">android/236855.html">android項目中使用nexus的方式.

android,nexus私服,nexus,nexus私服使用

項目展示.png

發布Library到私服

我們就以functionbar這個組件庫為例吧

配置nexus賬戶信息

因為Nexus相關參數是固定的,包含倉庫地址、用戶名和密碼,從安全性考慮我們把這些參數寫到gradle的Global配置中,目錄是C:/Users(用戶名).gradle/gradle.properties

NEXUS_USERNAME=usernameNEXUS_PASSWORD=passwordNEXUS_REPOSITORY_URL=http://xxx/nexus/repository/maven-releases/

配置pom參數

項目根目錄下的gradle.properties中添加如下pom參數

//依賴庫名稱POM_NAME=functionbar//版本號POM_VERSION=1.0.1//類別POM_ARTIFACTID=utils//組idPOM_GROUPID=com.app//打包類型POM_PACKAGING=aar

引入gradle腳本

在library的build.gradle文件末尾加上如下引用,當然這個文件需要創建放到項目根路徑,源碼在腳本解讀中

apply from: '../nexus_upload.gradle'

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

發布

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

android,nexus私服,nexus,nexus私服使用

up.png

等待一會出現Success字樣,證明已經上傳成功

android,nexus私服,nexus,nexus私服使用

success.png

最后我們去Nexus上驗證下,bingo!上傳成功。

android,nexus私服,nexus,nexus私服使用

腳本解讀

//依賴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  //如果項目javadoc不全會報錯,可以注釋掉  archives androidJavadocsJar}uploadArchives {  repositories {    mavenDeployer {      //倉庫地址      repository(url: NEXUS_REPOSITORY_URL) {        //私服賬戶信息        authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)      }      //pom必需的參數      pom.project {        name POM_NAME        version POM_VERSION        artifactId POM_ARTIFACTID        groupId POM_GROUPID        packaging POM_PACKAGING      }    }  }}

使用私服上的Library

首先,要在項目的build.gradle里面聲明私服的地址

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

然后就是我們最熟悉的在module的build.gradle文件中添加依賴,注意 groupId后面是:依賴庫名稱后面要加:和版本號,我就犯過引用是groupId后面寫. 的錯誤。

compile 'com.app:functionbar:1.0.1

發布Plugin(插件)到私服

發布步驟是和library一樣的只不過需要提一點,腳本信息需要做一些刪減,只用到以下這些。

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

使用私服上的Plugin

首先,要在項目的build.gradle里面配置classpath引用,就拿經典的小刀舉例吧

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'

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

 

注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 秦安县| 海丰县| 伊吾县| 邻水| 江孜县| 金川县| 扎赉特旗| 疏勒县| 鸡西市| 桓仁| 乳源| 砚山县| 邛崃市| 金堂县| 和龙市| 兴安县| 平阳县| 布尔津县| 平凉市| 克山县| 靖边县| 青州市| 秀山| 伊金霍洛旗| 大田县| 邛崃市| 兴义市| 哈密市| 清水县| 宝鸡市| 合作市| 青川县| 普定县| 常山县| 唐海县| 商洛市| 新河县| 抚顺市| 弋阳县| 新田县| 阿勒泰市|