如何構建本地Jcenter、以及上傳AAR、jar、plugin到本地Jcenter

#如何構建本地Jcenter、以及上傳AAR、jar、plugin到本地Jcenter

文章主要介紹: (1)如何搭建本地的Jcenter倉庫 (2)如何上傳AAR、jar、Plugin到本地倉庫 (3)如何引用本身上傳的AAR、jar、Plugin (4)如何建立倉庫的group,經過group能夠將jcenter、maven、alibaba、google、以及本身建立的倉庫等彙集一塊兒,方便項目中引用。java

如何搭建本地Jcenter倉庫

(1)下載artifactory工具:artifactory下載連接 (2)解壓並運行artifactory.bat文件。出現下圖的提示說明運行成功。 android

artifactory啓動成功
(3)在瀏覽器中輸入 http://localhost:8081/artifactory/出現下圖,那麼恭喜你artifactory已經部署成功了。默認帳號 : admin 密碼:password
瀏覽器顯示效果

如何建立本地倉庫

(1)進入Repositories點擊local如圖所示: 瀏覽器

建立倉庫
(2)點擊右上角的加號。 (3)在彈出Select Package Type中選擇Maven這個選項。 (4)填寫Repository Key選項,這個輸入的文字,就是你本地的倉庫名稱了。我建立的倉庫名稱是:lib-aar。之後上傳jar、aar會用到這個名稱。
填寫倉庫名稱
(5)完成以上步驟,說明你的本地倉庫已經建立完畢

如何上傳Jar

準備工做:在項目的build.gradle下引入 org.jfrog.buildinfo:build-info-extractor-gradle:4.1.1,注意是項目的gradle不是app下面的。以下圖所示: bash

這裏寫圖片描述
(1)建立一個 java-library項目,假設Module的名字叫作: utilslib (2)在與build.gradle同級的目錄下新建local-maven.gradle。 (3)local-maven.gradle裏面的代碼以下:

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def artifactVersion = '1.0.2001'//發佈的版本

publishing {
    publications {
        mainJava(MavenPublication) {
            groupId = 'XX.YYY'   //填寫GroupId
            artifactId project.name
            version = artifactVersion
            from components.java

        }
    }
}

task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

artifactory {
    contextUrl = "http://localhost:8081/artifactory"//本地倉庫地址
    publish {
        repository {
            /**
             repoKey:指定發佈到的倉庫名稱
             */
            //這裏判斷了當前發佈的版本是否是‘快照’版本;
            //其中'libs-snapshot-local' : 'lib-aar'是兩個倉庫名稱
            repoKey = artifactVersion.endsWith('SNAPSHOT') ?
                    libs-snapshot-local' : 'lib-aar' username = "admin" // 發佈者用戶名 password = "password" // 發佈者密碼 maven = true } defaults { publishArtifacts = true //這裏的'mainJava'對應publishing任務中的'mainJava',任務名稱可自定義 publications('mainJava') publishPom = true //Publish generated POM files to Artifactory (true by default) publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default) } } resolve { repository { repoKey = 'jcenter' username = "admin" // 發佈者用戶名 password = "password" // 發佈者密碼 } } } 複製代碼

(4)在build.gradle裏面引入local-maven.gradleapp

apply from: 'local-maven.gradle'
複製代碼

(5)上傳Jar 點擊圖中的artifactoryPublish上傳Jar文件。若是提示缺乏POM文件,點擊generatePomFileForMainJavaPublication,而後從新上傳便可。 maven

上傳jar

如何上傳AAR

步驟同上傳jar,只是local-maven.gradle的代碼有所區別。代碼以下:工具

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def artifactVersion = '1.0-SNAPSHOT'//發佈的版本

publishing {
    publications {
        aar(MavenPublication) {
            groupId = 'XXX.YYYY'
            artifactId project.name
            version = artifactVersion
            artifact "${project.buildDir}/outputs/aar/${project.name}-release.aar"
        }
    }
}
artifactory {
    contextUrl = "http://localhost:8081/artifactory"//本地倉庫地址
    publish {
        repository {
            /**
             repoKey:指定發佈到的倉庫名稱
             */
            //這裏判斷了當前發佈的版本是否是‘快照’版本;
            //其中'libs-snapshot-local' : 'lib-aar'是兩個倉庫名稱
            repoKey = artifactVersion.endsWith('SNAPSHOT') ?
                    'libs-snapshot-local' : 'lib-aar'
            username = "admin" // 發佈者用戶名
            password = "password" // 發佈者密碼
            maven = true
        }
        defaults {
            publishArtifacts = true
            //這裏的'aar'對應publishing任務中的'aar',任務名稱可自定義
            publications('aar')
            publishPom = true //Publish generated POM files to Artifactory (true by default)
            publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default)
        }
    }
    resolve {
        repository {
            repoKey = 'jcenter'
            username = "admin" // 發佈者用戶名
            password = "password" // 發佈者密碼
        }
    }
}

複製代碼

如何上傳Plugin

同理,上傳Plugin的步驟如上。點擊下圖的uploadArchives上傳,上傳AAR文件的代碼有待優化gradle

這裏寫圖片描述

buildscript {
    repositories {
        maven { url 'https://dl.google.com/dl/android/maven2/' }
        jcenter()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
        classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.5.4'
        classpath "com.gradle.publish:plugin-publish-plugin:0.9.10"
    }
}

apply plugin: "com.gradle.plugin-publish"
apply plugin: 'groovy'
apply plugin: 'maven'

archivesBaseName = DESCRIPTION
group = GROUP_ID
version = VERSION_NAME

repositories {
    maven { url 'https://dl.google.com/dl/android/maven2/' }
    jcenter()
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation gradleApi()
    implementation localGroovy()
    compile files('libs/jclasslib-library.jar')
    implementation 'com.android.tools.build:gradle:3.0.1'
    compile 'com.squareup:javapoet:1.8.0'
    compile 'org.jooq:joor:0.9.6'
}

pluginBundle {


    plugins {
        FatLibraryPlugin {
            id = XX.YYY.fat-aar' displayName = 'Fataar plugin' description = "The fat-aar plugin that can be used under android plugin 3.0.1 and gradle wrapper 4.4." tags = ['fat-aar', 'android'] version = VERSION_NAME } } } task sourcesJar(type: Jar) { classifier = 'sources' group BasePlugin.BUILD_GROUP description = 'Assembles a jar archive containing the main sources of this project.' from sourceSets.main.allSource } artifacts { archives sourcesJar } jar { manifest { attributes( "Manifest-Version": VERSION_NAME, "Main-Class": GROUP_ID) } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } uploadArchives { repositories { mavenDeployer { repository(url: "http://localhost:8081/artifactory/lib-aar/") { authentication(userName: "admin", password: "password") } } } } 複製代碼

上傳成功之後,進入瀏覽器,查看是否有你上傳的文件,若是以下圖所示說明上傳成功: 優化

這裏寫圖片描述

如何建立倉庫的group,經過group能夠將jcenter、maven、alibaba、google、以及本身建立的倉庫等放在一塊兒,方便項目中引用

(1)建立virtual,步驟和建立lib-aar基本相似,須要將你須要的第三方倉庫加入到裏面,我添加有jcenter、maven、alibaba、google和本身上面建立的lib-aar。以下圖所示: ui

這裏寫圖片描述

這裏寫圖片描述

(2)下面就是如何引用了,在項目的build.gradle引入下面的代碼,圖中打馬賽克的地方是你建立的virtual的名字。

這裏寫圖片描述
(3)接下來就是引入本身上面上傳的jar、AAR和Plugin文件了。

  1. 引用Jar XXX.YYY: 對應上傳jar的groupId 。Utils: 對應項目的名字,版本號1.0.2001對應上傳jar的artifactVersion
compile 'XXX.YYY:1.0.2001'
複製代碼
  1. 引用AAR

XXX.YYY: 對應上傳AAR的groupId 。Utils: 對應項目的名字,版本號1.0.2001對應上傳jar的artifactVersion

compile 'XXX.YYY:1.0.2001'
複製代碼
  1. 引用Plugin
classpath "gradle.plugin.me.lucas:fat-aar-plugin:1.0.9"
複製代碼
相關文章
相關標籤/搜索