jfrog上传到maven私服的心路历程(组件化必经之路)

1.https://www.jfrog.com/open-source/下载jfrog的服务端的maven管理软件,我的是windows的环境,就下载了zip包,你们可以根据自己的电脑系统下载对应的版本,下载完成,打开artfactory.bat,这样就启动了jfrog的服务端软件了,如下图所示:

image.png

2.上面启动的时候,会启动terminal,当我们看到如下面的语句的时候,我们可以在浏览器中输入http://127.0.0.1:8081/artifactory/查看服务是否启动成功。
image.png

3.对于刚刚启动的jfrog服务端的话,都是没有repo的,所以我们第一步需要create repo:
image.png

创建的时候,会让我们输入repo key,这个key我们后面会用到的。

4.现在我们服务端都准备好了,那么对于要上传,肯定需要有上传的文件,所以首先要生成aar,我们可以在根目录下面增加

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

在自己模块的build.gradle中引用这个插件:apply plugin: 'com.jfrog.artifactory'

5.这样在对应的module执行assemble会在模块的根目录下面的build/outputs/aar生成对应的编译类型的aar包。

6.生成的aar包,怎么上传到对应的服务端的仓库当中?
答:在模块的build.gradle中再增加

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中执行下面的命令,


image.png

命令生成pom文件,在build/outputs/publications/mavenAar,这样会在,然后通过上面的artifactoryPublish进行上传到服务端就可以了。

7.结果图:


image.png

8.还有一点就是我们在项目的根目录build.gradle中的allprojects方法中添加maven私服的路径,这样我们的包就能成功下载了,只需要在引用该包的时候,添加compile就可以了。

allprojects {
    repositories {
        ...
        maven {
            url JFROG_SCHEME_HOST_ARTIFACTORY
        }
    }
}

你可能感兴趣的:(jfrog上传到maven私服的心路历程(组件化必经之路))