jfrog上傳到maven私服的心路歷程(組件化必經之路)

1.https://www.jfrog.com/open-so...,個人是windows的環境,就下載了zip包,大家能夠根據本身的電腦系統下載對應的版本,下載完成,打開artfactory.bat,這樣就啓動了jfrog的服務端軟件了,以下圖所示:windows

clipboard.png

2.上面啓動的時候,會啓動terminal,當咱們看到以下面的語句的時候,咱們能夠在瀏覽器中輸入http://127.0.0.1:8081/artifactory/查看服務是否啓動成功。瀏覽器

clipboard.png

3.對於剛剛啓動的jfrog服務端的話,都是沒有repo的,因此咱們第一步須要create repo:app

clipboard.png

建立的時候,會讓咱們輸入repo key,這個key咱們後面會用到的。maven

4.如今咱們服務端都準備好了,那麼對於要上傳,確定須要有上傳的文件,因此首先要生成aar,咱們能夠在根目錄下面增長gradle

dependencies {
    //jfrog上傳
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release"
}

在本身模塊的build.gradle中引用這個插件:apply plugin: 'com.jfrog.artifactory'ui

5.這樣在對應的module執行assemble會在模塊的根目錄下面的build/outputs/aar生成對應的編譯類型的aar包。url

6.生成的aar包,怎麼上傳到對應的服務端的倉庫當中?
答:在模塊的build.gradle中再增長spa

apply plugin: 'com.jfrog.artifactory' //這個在3的操做中已經加上去了
apply plugin: 'maven-publish'

def MAVEN_LOCAL_PATH = JFROG_SCHEME_HOST_ARTIFACTORY
def ARTIFACT_ID = "simplelinechart"
def VERSION_NAME = '0.0.4'
def GROUP_ID = project.getName()

publishing {//這段語句,是生成pom文件的task
    publications {
        pom_create(MavenPublication) {
            groupId GROUP_ID
            version = VERSION_NAME
            artifactId ARTIFACT_ID
            // 這裏得到aar 生成的位置和上傳
            artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
        }
    }
}


artifactory {//上傳aar和pom的task
    contextUrl = MAVEN_LOCAL_PATH
    publish {
        repository {
            // The Artifactory repository key to publish to
            repoKey = 'libs-repo'
            username = JFROG_USERNAME
            password = JFROG_PASSWORD
            maven = true
        }
        defaults {
            // 這裏的 pom_create指向上面 publishing/publications/pom_create
            publications('pom_create')
        }
    }
 
}

這樣咱們先經過gradle的task中執行下面的命令,插件

clipboard.png

命令生成pom文件,在build/outputs/publications/mavenAar,這樣會在,而後經過上面的artifactoryPublish進行上傳到服務端就能夠了。code

7.結果圖:

clipboard.png

8.還有一點就是咱們在項目的根目錄build.gradle中的allprojects方法中添加maven私服的路徑,這樣咱們的包就能成功下載了,只須要在引用該包的時候,添加compile就能夠了。

allprojects {
    repositories {
        ...
        maven {
            url JFROG_SCHEME_HOST_ARTIFACTORY
        }
    }
}
相關文章
相關標籤/搜索