Android Studio使用gradle向Maven私服提交

yuanhong發表於2017-12-27

如何搭建Maven私服請參考別的文章介紹,主要是nexus下載和安裝部署,本日記只記錄如何向Maven私服提交。 一般我們開發的通用元件,如果在A專案中使用,可以直接使用引入程式碼的方式;如果B專案也希望使用同樣的元件功能,可以把A使用的程式碼拷貝一份給B,但是不是最合理的方式,而且會存在通用元件隨著功能演化版本不統一的情況,這時候Maven的有點就體現出來了:可以把開發好的通用元件提交到Maven伺服器上,內部專案以後使用的時候,直接在gradle的‘dependencies’中新增一行依賴即可。

####第一步: 在專案的根目錄下修改gradle.properties,新增如下的配置:

MAVEN_REPO_RELEASE_URL=http://172.16.4.112:8081/nexus/content/repositories/releases/
MAVEN_REPO_SNAPSHOT_URL=http://172.16.4.112:8081/nexus/content/repositories/snapshots/

#對應maven的GroupId的值
GROUP = common
#登入nexus ossde的使用者名稱
NEXUS_USERNAME=myusername

#登入nexus oss的密碼
NEXUS_PASSWORD=password
# groupid
GROUP_ID = common
# type
TYPE = aar
# description
DESCRIPTION = 寫點此元件的描述.
複製程式碼

####第二步: 修改待提交模組的build.gradle檔案,

uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            repository(url: MAVEN_REPO_RELEASE_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            pom.project {
                version '1.0.2'
                artifactId 'aria-lib'
                groupId 'com.arialyy.aria'
                packaging TYPE
                description DESCRIPTION
            }
//            pom.groupId = 'com.duoku.sdk.download'
//            pom.artifactId = 'aria2-lib'
//            pom.version = '1.0.0'

        }
    }
}
複製程式碼

####第三步: 在程式碼開發結束,測試驗證通過,覺得可以作為一個版本釋出時,就可以執行提交任務了。 開啟Android studio的Gradle標籤,找到待發布的module,會出現upload組,下面有一個任務名叫:uploadArchives,雙擊該任務名稱即可釋出到Maven伺服器。

####第四步: 到前面三步,如果都順利的話,其實我們的元件已經發布到Maven伺服器。這一步主要是引用Maven上已提交的庫,即對元件的使用。 需要修改專案的build.gradle檔案,增加我們自己Maven伺服器的地址,例如:

maven {
    url 'http://172.16.4.112:8081/nexus/content/repositories/jcenterp/'
}
複製程式碼

然後在具體使用該元件的module的build.gradle檔案中新增對該元件的引用後重新sync一下gradle,會發現我們前面提交的gradle已經拉下來了。

#android studio3.0上使用implementation和api替代以前的compile指令了
implementation 'com.android.support:appcompat-v7:26.1.0'
#或者
api 'com.android.support:appcompat-v7:26.1.0'
複製程式碼

相關文章