美文网首页Android Studio
nexus maven私服发布Android library

nexus maven私服发布Android library

作者: 温得儿 | 来源:发表于2015-12-22 12:40 被阅读264次

现在公司安卓项目比较多,想把重复的、常用的类抽离出来作为一个类库。
参考maven文档及网上一些参考文档,简单的整理如下

创建公共库

  • 新建一个项目,然后添加一个需要做为公共库的Module。
  • 在这个module的gradle中添加代码:
apply plugin: 'maven'
      def getRepositoryUsername() {    
          return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
      def getRepositoryPassword() {    
          return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
    afterEvaluate {project ->    
          uploadArchives {
                repositories {
                    mavenDeployer {
                        pom.groupId = GROUP
                        pom.artifactId = POM_ARTIFACT_ID        
                        pom.version = VERSION_NAME                
                        repository(url:"http://172.16.7.251:8081/nexus/content/repositories/com.jjshome.mobile") {
                        authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) 
               }            
            }        
         }   
    }    
    task androidSourcesJar(type: Jar) {
        classifier = 'sources'        
       from android.sourceSets.main.java.sourceFiles    
    }    
    artifacts {        
       archives androidSourcesJar    
   }
}

这里的URL没有使用 releases的repositories(一般为http://172.16.7.251:8081/nexus/content/repositories/releases/ ), 而是自定义了一个MobileRepository,是因为上传releases的地址gradle报无法连接的错误,想来是私服有人设置了权限吧。

  • 在这个module下添加配置文件gradle.properties,添加些属性
#对应maven的groupId值
GROUP=com.jjshome.mobile
#对应maven的version值
VERSION_NAME=0.0.3
#对应maven的artifactId值
POM_ARTIFACT_ID=jjs-utils
#登录nexus oss的用户名
NEXUS_USERNAME=admin
#登录nexus oss的密码
NEXUS_PASSWORD=admin123
  • 运行上传任务
上传library.png

项目中引入公共库

  • 在项目的顶层build.gradle添加私服地址
allprojects {
    repositories {
        jcenter()        
        maven {
               url "http://172.16.7.251:8081/nexus/content/groups/public/" 
        }
    }
}
  • 在需要引用的modle中的build.gradle添加library
dependencies {    
       compile 'com.jjshome.mobile:jjs-utils:0.0.3'   
}

配置中遇到的问题

<ul>在maven私服中需要把自己的repositories添加到Public RepositoriesOrdered Group Repositories

Paste_Image.png

</ul>
<ul>
在编译上传自定义的库时注意编译的sdk版本,和最低支持的sdk版本。如果引用的项目中compileSdkVersion的版本比自定义库中的低,minSdkVersion的版本比自定义的高,那么会编译失败。
最好是自定义的库支持的minSdkVersion要比较低,compileSdkVersion、targetSdkVersion也比较低。
</ul>

相关文章

  • nexus maven私服发布Android library

    现在公司安卓项目比较多,想把重复的、常用的类抽离出来作为一个类库。参考maven文档及网上一些参考文档,简单的整理...

  • Ubuntu server下搭建Maven私服Nexus

    Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内...

  • Docker之MAVEN私服

    Docker之MAVEN私服 目录 nexus简单介绍 Docker安装MAVEN nexus Maven nex...

  • 如何将Android studio中Library发布到私服Ne

    搭建 略 发布Library到私服 1新建文件nexus-push.gradle文件 需要注意的是nexus-pu...

  • nexus 创建私服仓库上传jar包

    前提条件 : 本地搭建好nexus私服仓库 如何搭建nexus私服请参考: Nexus、Maven仓库介绍以及在项...

  • 8 私服相关

    1 私服:nexus搭建流程Maven Nexus3私服搭建指南https://www.jianshu.com/p...

  • maven私服

    使用私服 Maven 自动打包上传到私服 Nexus 自动打包上传私服(nexus3.X版本改了很多) Repos...

  • Maven搭建私服Nexus

    一、搭建Maven私服,使用Nexus搭建1、下载Nexus,点击nexus下载,下载nexus-2.13.0-0...

  • Maven私服实战

    Maven私服实战 前置依赖 JDK Maven 下载 Nexus Repository Manager OSS ...

  • 使用Nexus2搭建私有库

    本文梳理了一些使用Nexus搭建Maven私服的方法。Maven私服Nexus的作用,主要是为了节省资源,在内部作...

网友评论

    本文标题:nexus maven私服发布Android library

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