美文网首页Android知识Android学习软件工具
使用 Android Studio + Nexus 搭建 Mav

使用 Android Studio + Nexus 搭建 Mav

作者: Monkey2016 | 来源:发表于2016-08-22 01:59 被阅读3185次

    最近由于公司项目需要,多个项目依赖于一个公共Library,所以便学习了一下Android Studio下的项目依赖该如何做。本着好记性不如烂笔头的想法,果敢的记录一下自己的Android 日常。

    Gradle篇

    1.发布Library到私服

    打开对应模块的build.gradle文件,由于项目本身可能就有很多内容需要配置,所以这里上传Library到Maven仓库的代码写在单独的文件里面,减少build.gradle的代码量,这里在相应模块下新建一个nexus_maven.gradle:

    apply plugin: 'maven'
    
    task androidJavadocs(type: Javadoc) {    
      source = android.sourceSets.main.java.srcDirs    
      classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    
    task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
      classifier = 'javadoc'    
      from androidJavadocs.destinationDir
    }
    
    task androidSourcesJar(type: Jar) {    
      classifier = 'sources'    
      from android.sourceSets.main.java.srcDirs
    }
    
    artifacts {    
      archives androidSourcesJar    
      archives androidJavadocsJar
    }
    
    uploadArchives {    
      repositories {        
        mavenDeployer {            
          repository(url: "http://localhost:8081/nexus/content/repositories/android-lib/") {                            
            authentication(userName: "admin", password: "admin123")            
          }            
          pom.project {                
            name 'numberMorphView4Android'                
            version '1.0.0'                
            artifactId 'numbermorphview4android'                
            groupId 'com.android'                
            packaging 'aar'                
            description 'numberMorphView for Android'            
          }       
        }    
      }
    }
    

    其中主要配置的内容有:url,authentication以及pom.project里面的信息;
    然后在该模块下的build.gradle文件最后添加下面这句apply from: './nexus_maven.gradle'

    nexus_maven.png
    基本的配置就是这些了。接下来准备上传,
    upload_archives.png
    选择uploadArchives,如果项目没有什么问题的话,则会提示BUILD SUCCESSFUL
    刷新网页,可以看到Library已经成功上传: upload_success.png

    2.使用私服上的Library

    首先,要在项目的build.gradle里面声明私服的地址:

      allprojects {    
        repositories {        
          jcenter()        
          maven { 
            url 'http://localhost:8081/nexus/content/repositories/android-lib/' 
          }        
        }
      }
    

    然后在对应模块的build.gradle文件中,添加项目依赖:

      compile 'com.android:numbermorphview4android:1.0.0@aar'
    

    这里的组成和提交的pom.project的信息有关:

      <dependency>
        <groupId>com.android</groupId>
        <artifactId>numbermorphview4android</artifactId>
        <version>1.0.0</version>
        <type>aar</type>
      </dependency>
    

    关于Gradle缓存

    在执行过一次Gradle的同步之后,Gradle会把对应的Library的文件下载在本地,之后会直接使用。所以当我们删除旧的Library,用同样的pom.project信息重新上传一个新的Library时,执行Gradle同步,并不会更新最新的Library下来。这个时候可以到仓库存储路径下把对应的Library文件删除。
    一般来说,
    Mac系统默认下载到:/Users/(用户名)/.gradle/caches/modules-2/files-2.1
    Windows系统默认下载到:C:\Users\(用户名)\.gradle\caches\modules-2\files-2.1

    最后,列一下参考学习的文章:
    Android Studio发布项目到Maven仓库
    AndroidStudio使用进阶二:搭建自己的maven私服,并使用Gradle统一依赖管理

    相关文章

      网友评论

        本文标题:使用 Android Studio + Nexus 搭建 Mav

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