将自己的AAR库发布到JFrog私服上

自己搭建了JFrog Maven私服,客户端开发的库可发布到JFrog私服供其他App使用。

 一、修改配置文件

1.1 修改工程根目录下的build.gradle,在dependencies{}里面增加依赖,代码如下:

classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.5.4"



1.2 修改工程的库模块里面的build.gradle文件,在里面增加以下代码,如下:

 apply plugin: 'com.jfrog.artifactory'
 apply plugin: 'maven-publish'
 
 def MAVEN_LOCAL_PATH ='http://localhost:8080/artifactory'
 def GROUP_ID = 'com.sk.test'
 def ARTIFACT_ID = 'testsdk'
 def VERSION_NAME = '1.0.0'
 
 publishing {
     publications {
         aar(MavenPublication) {
             groupId GROUP_ID
             artifactId ARTIFACT_ID
             version = VERSION_NAME 

             // Tell maven to prepare the generated "*.aar" file for publishing
             artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
             pom.withXml {
                 def dependencies = asNode().appendNode('dependencies')
                 configurations.compile.allDependencies.each{
                     // 如果有compile fileTree(),group会为空,需要去除
                     if(it.group != null) {
                         def dependency = dependencies.appendNode('dependency')
                         dependency.appendNode('groupId', it.group)
                         dependency.appendNode('artifactId', it.name)
                         dependency.appendNode('version', it.version)
                     }
                 }
             }
         }
     }
 }
 
 artifactory {
     contextUrl = MAVEN_LOCAL_PATH
     publish {
         repository {
 
             // The Artifactory repository key to publish to
             repoKey = 'gradle-release-local'
             username = "admin"
             password = "admin"
 
             defaults {
                 // Tell the Artifactory Plugin which artifacts should be published to Artifactory.
                 publications('aar')
                 publishArtifacts = true
                 // Properties to be attached to the published artifacts.
                 properties = ['qa.level': 'basic', 'dev.team': 'core']
                 // Publish generated POM files to Artifactory (true by default)
                 publishPom = true
             }
         }
     }
 }



各定义说明,以maven依赖正常使用为例来说明,假如需要使用的依赖是:

compile 'com.sk.test:testsdk:1.0.0'         
        |----- 1 ---|---2---|--3--|


MAVEN_LOCAL_PATH JFrog上的创建的Local仓库,'''记得私有的必须创建Local类型的'''。remote会发布到共有库上。
自己搭的JFrog私服地址是 http://localhost:8080/artifactory  

GROUP_ID 一般情况下是你library的包名,上面的1部分(com.sk.test)

ARTIFACT_ID 你library的名字,建议使用当前库module的名字,在后面配置的时候方便使用。上面的2部分(testsdk)

VERSION_NAME 版本号,当前库的版本名称,升级时有用。上面的3部分(1.0.0)


repoKey 是你JFrog上面创建Local仓库时,输入的repository key。上面已经创建了一个repoKey: gradle-release-local

username 是JFrog的用户名。

password 是JFrog登录密码。




二、编译上传

配置完成之后,即可编译上传。图形界面操作

2.1 在android studio右边的Gradle模块中, 双击 库模块名/build 下面 assembleRelease  

2.2 双击 库模块名/publishing 下面 generatePomFileForAarPublication

2.3 双击 库模块名/publishing 下面 artifactoryPublish 上面3步不知道在哪儿,可以看这张图片,依次操作:

将自己的AAR库发布到JFrog私服上_第1张图片
 
 
如果以上3布都没有错,即上传成功。可以去JFrog上面查看结果。
将自己的AAR库发布到JFrog私服上_第2张图片
 

也可以使用命令操作, 命令行操作如下:

gradle assembleRelease generatePomFileForAarPublication artifactoryPublish

命令行操作执行gradle的task,实际上与界面操作是一样的。


三、使用
在项目中使用库
3.1 客户端在自己的项目根目录下的build.gradle文件中增加maven仓库,代码如下:
maven { 
     url "http://localhost:8080/artifactory/gradle-release-local" 
 }
 



3.2 客户端在自己项目的build.gradle文件中配置依赖即可,如下:

compile 'com.sk.test:testsdk:1.0.0'

你可能感兴趣的:(jcenter,Java,Kotlin,maven仓库)