发布Android studio项目到本地Maven仓库

作者: 猿圆猿 | 来源:发表于2016-07-10 22:12 被阅读3494次

    说明

    android studio 中我们可以通过在gradle.build中添加配置来导入引用库,如:

    compile 'com.kcode.github.pubutils:androidLib:0.0.1'
    
    

    通过这个可以看出'com.kcode.github.pubutils:androidLib:0.0.1'由三部分组成,分别是Maven中的

    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.kcode.github.pubutils</groupId>
      <artifactId>androidLib</artifactId>
      <version>0.0.1</version>
      <packaging>aar</packaging>
    </project>
    
    

    groupId:唯一标识符
    artifactId:类似于项目名称
    version:版本号
    现在我们来创建一个自己的本地库。

    第一步

    新建一个Android项目。在gradle.properties中添加一下信息

    #包信息
    GROUP_ID = com.kcode.github.pubutils
    
    # Licence信息
    PROJ_LICENCE_NAME=The Apache Software License, Version 2.0
    PROJ_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
    PROJ_LICENCE_DEST=repo
    
    

    GROUP_ID:就是刚才的groupId

    下面的Licence信息是固定的

    第二步

    创建一个Libary,我命名为AndroidLib
    在Libary的根目录下新建gradle.properties文件,添加

    #包信息
    ARTIFACTID = androidLib
    LIBRARY_VERSION = 0.0.2
    
    #Mac下地址:file:///Users/<username>/my/local/repo
    LOCAL_REPO_URL=file:///Users/caik/my/local/repo
    

    ARTIFACTID:开始说的到artifactId
    LIBRARY_VERSION:版本号
    LOCAL_REPO_URL:本地仓库的地址:file://+本地路径

    第三步

    在Library也就是刚才创建的AndroidLib下的gradle.build中添加

    apply plugin: 'maven'
    
    uploadArchives{
        repositories.mavenDeployer{
            repository(url:LOCAL_REPO_URL)
            pom.groupId = GROUP_ID
            pom.artifactId = ARTIFACTID
            pom.version = LIBRARY_VERSION
        }
    }
    

    第四步

    最后在项目路径下执行:

    ./gradlew -p <Library name> clean build uploadArchives --info
    

    我这里就是:

    ./gradlew -p androidlib clean build uploadArchives --info
    
    

    等执行结束到刚才设置好的

    LOCAL_REPO_URL=file:///Users/caik/my/local/repo
    

    路径下就可以看到已经发布好的本次仓库

    第五步

    引用,先在最外层的gradle.build中添加本地maven库路径

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.1.0'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            jcenter()
    
            maven {
                url 'file:///Users/caik/my/local/repo/'
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
    

    就是:

    maven {
                url 'file:///Users/caik/my/local/repo/'
        }
    

    然后在需要引用这个库的项目的gradle.build中添加:

    compile 'com.kcode.github.pubutils:androidLib:0.0.1'
    
    

    就可以了。

    项目GitHub地址:https://github.com/fccaikai/LocalMavenDemo

    相关文章

      网友评论

      • ab6018abaa99:你好,我在项目路径下执行成功了。但是并没有看到仓库请问是怎么回事啊
        44b9dbab3fb6:人家用的是Mac,没考虑过windows的情况。
        把“file:///Users/caik/my/local/repo”改成完整路径“file:///C:/Users/你的用户名/my/local/repo”
      • andy521zhu:很棒
      • 242c3d2d6f07:请问一下,我将创建好的本地仓库放入到svn上,更改url之后,compile的时候报错,如何才能才能将本地的私有仓库上传至svn并导入引用库?
        猿圆猿:@Breenda_L 额,这东西不是传到svn的啊。是maven仓库。svn跟maven是两个概念
        242c3d2d6f07:@猿圆猿 创建的本地仓库放到本地,或放到公司内网服务器都可以直接引用,但是上传到svn后,再compile 'com.kcode.github.pubutils:androidLib:0.0.1'就报错。如2楼所说的差不多,将本地仓库的地址url换成SVN的地址便报错
        猿圆猿:@Breenda_L svn?你是要搭建maven的私服么
      • captainary:好,非常棒,正在研究组件化知识,需要把公共类放在本地的maven仓库上,如果是maven仓库是SVN地址也是同理吗?
        猿圆猿:@四叶花 是的,只要把本地仓库的地址换成私服的url,然后再配置一下账号密码就好了。

      本文标题:发布Android studio项目到本地Maven仓库

      本文链接:https://www.haomeiwen.com/subject/waidjttx.html