maven私服的使用,结合android studio

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013626215/article/details/86016739

上片文章介绍了如何搭建maven私服如果没有搭建好的可参考 https://blog.csdn.net/u013626215/article/details/86007013

接下来将介绍一下maven服务的具体使用
在启动服务后可访问http://localhost:8081/或远程地址http://ip地址:8081/
此时需要登录,点击右上角sign in
用户名: admin
密码:admin123

下面对页面结构做大概说明,打开后显示如下界面:

在这里插入图片描述

一.左侧菜单:

  • search :为搜索的库文件
  • browse:maven库列表
  • upload:上传的库文件

二.仓库列表介绍:
在这里插入图片描述

左侧菜单其他还有很多功能,在这就不详细介绍了,下面说一下我们应该怎样去创建仓库并使用

1.在创建仓库是要先选择仓库的存储位置,如下图,我们可以使用默认的位置default

在这里插入图片描述

也可以自己创建一个,如下图:

在这里插入图片描述

2.存储位置有了,下面创建仓库一般要有一个proxy代理仓库,指向maven的中央仓库。当然也可以指向其他的仓库(如果有的话),如下图选择创建仓库:

在这里插入图片描述
在这里插入图片描述

3创建一个proxy仓库一般属性都是默认就好,如下:

在这里插入图片描述

4下面创建发布的release仓库,如图:

在这里插入图片描述

5如果想不做升级覆盖原来的版本此处可以修改为allow redeploy

在这里插入图片描述

6在创建snapshot仓库,同上面的release仓库相似:

在这里插入图片描述

7创建仓库group统一管理上面的3个仓库:

在这里插入图片描述

8最终效果如下图:

在这里插入图片描述

仓库创建完成,之后就是整合android studio将代码上传到这里面:

在已有的android library中添加配置,首先创建一个gradle_maven_push.gradle文件

在这里插入图片描述

以下文件几乎通用,执行修改服务器地址和三项pom参数即可,代码如下:

apply plugin: 'maven'


// 此处的值可根据实际版本发生变化
def isRelease = true

//release 地址
def RELEASE_REPOSITORY_URL = "http://192.168.182.128:8081/repository/demo-maven-host/"
//snapshots 地址
def SNAPSHOT_REPOSITORY_URL = "http://192.168.182.128:8081/repository/demo-maven-snapshot/"

// 根据 isRelease判断将项目上传到那个地址上
def REPOSITORY_URL = isRelease ? SNAPSHOT_REPOSITORY_URL : RELEASE_REPOSITORY_URL;

def NEXUS_USERNAME = "admin"
def NEXUS_PASSWORD = "admin123"

// 下面这三项pom参数,在调用的时候是这个样子 : compile 'com.google.zxings:zxing:1.1.1'
def GROUP="com.google.zxings"
def POM_ARTIFACT_ID="zxing"
def VERSION_NAME="1.1.1"

logger.info("groupId = %s\t\nartifactId = %s\t\nversion = %s\t\nrepository = %s\t\n", GROUP, POM_ARTIFACT_ID, VERSION_NAME, REPOSITORY_URL)

afterEvaluate { project ->
    uploadArchives {
        repositories.mavenDeployer {
            repository(url: REPOSITORY_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }

            // 下面这三项pom参数,在调用的时候是这个样子 : compile 'com.google.zxings:zxing:1.1.1'
            // library的包名
            pom.groupId = GROUP
            // library的项目名
            pom.artifactId = POM_ARTIFACT_ID
            // library的版本号
            pom.version = VERSION_NAME

            pom.project {
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
            }
        }
    }

    task androidJavadocs(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }

    task androidSourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.sourceFiles
    }

    artifacts {
        archives androidSourcesJar
    }
}

之后在library的build.gradle将上面的文件引入即可 如:

apply plugin: 'com.android.library'

android {
 // 。。。省略
}

//引用gradle_maven_push.gradle
apply from: "gradle_maven_push.gradle"

编译通过后在android studio的Terminal中执行如下命令:

gradle uploadArchives

出现下图表示上传成功

在这里插入图片描述


点击gradle快捷方式,双击uploadArchives也可以上传成功

在这里插入图片描述

在仓库中对应的库中查看,已经可以看到刚上传的库文件了:

在这里插入图片描述

既然上传好了,剩下的就是如何使用这个库了,先复制仓库group的地址:

在这里插入图片描述

添加到项目的根目录的build.gradle如图:

在这里插入图片描述

代码如下:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'

//        classpath 'com.novoda:bintray-release:0.8.1'
    }
}

allprojects {
    repositories {
        //maven仓库组地址
        maven{
            url "http://192.168.182.128:8081/repository/demo-maven-group/"
        }
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在项目对应的application的build.gradle中引用上传才库文件:

apply plugin: 'com.android.application'

android {
    //.....省略
}
dependencies {
	// 此处就是引用方式
    implementation "com.google.zxings:zxing:1.1.1"
}

到此maven私服的上传和使用都介绍完了,有不足和错误的地方欢迎指出,讨论

在android studio 里面如果想把项目上传到jcenter上可参考:
https://www.jianshu.com/p/207c3a467167

特别鸣谢参考地址
http://www.cnblogs.com/kevingrace/p/6201984.html
https://blog.csdn.net/qq_26585943/article/details/79771313
https://www.jianshu.com/p/207c3a467167

猜你喜欢

转载自blog.csdn.net/u013626215/article/details/86016739