02_android中搭建maven私服

android中搭建maven私服

一.下载nexus

通过nxeus官网进行下载

二.打开dos窗口,进入nexus/bin目录下

在这里插入图片描述

三.通过’./nexus start’命令启动nexus服务器

在这里插入图片描述

四.在浏览器中输入’http://127.0.0.1:8081’, 如果能够访问到首页,则说明nexus服务器启动成功

在这里插入图片描述

五.登录nexus服务器,默认的账号密码分别为admin和admin123

在这里插入图片描述

六.点击左侧的Browse即可浏览所有的代码仓库

在这里插入图片描述

七.点击工具栏中的设置按钮,再在左侧的菜单栏中选中’Respository’后,点击’Respositories’,最后点击’Create respository’即可,仓库类型选择’maven2(hosted)’

在这里插入图片描述

八.编写上传脚本,使android-studio工程能够完成库项目的上传

  • 1.创建一个android-studio项目

  • 2.在gradle.properties中添加如下配置

    # 仓库地址
    NEXUS_REPOSITORY_URL = http://127.0.0.1:8081/repository/android-test-release/
    # 包名(maven仓库的组织名,不是应用包名)
    POM_GROUPID = com.gale.android
    # 类型
    POM_PACKAGING = aar
    # 用户名
    NEXUS_USERNAME = admin
    # 密码
    NEXUS_PASSWORD = admin123
    
  • 3.创建一个lib module命名为first_lib

  • 4.在first_lib的build.gradle中编写上传脚本

    apply plugin: 'com.android.library'
    apply plugin: 'maven'
    
    def pomName = this.getName()
    def pomVersionName = '1.0.0'
    def pomDescription = 'a simple android library'
    
    android {
        ...
    }
    
    dependencies {
        ...
    }
    
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: NEXUS_REPOSITORY_URL) {
                    authentication(
                            userName: NEXUS_USERNAME,
                            password: NEXUS_PASSWORD
                    )
                }
                pom.project {
                    name pomName
                    version pomVersionName
                    description pomDescription
                    artifactId pomName
                    groupId POM_GROUPID
                    packaging POM_PACKAGING
                }
            }
        }
    }
    
  • 5.新建一个Activity,命名为TestActivity

  • 6.重新build项目,可以看到此时first_lib模块中多了一个uploadArchives,双击uploadArchives即可完成first_lib库项目的上传

    在这里插入图片描述

  • 7.上传完成即可在nexus的服务器端看到结果

    在这里插入图片描述

九.在android项目中接入自己创建的maven私服

  • 1.打开android工程下的build.gradle文件,在repositories中添加我们自己创建的maven仓库

    buildscript {
    
        repositories {
            google()
            jcenter()
            maven {
                url 'http://127.0.0.1:8081/repository/android-test-release/'
                credentials {
                    username 'admin'
                    password 'admin123'
                }
            }
        }
        dependencies {
            ...
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
            maven {
                url 'http://127.0.0.1:8081/repository/android-test-release/'
                credentials {
                    username 'admin'
                    password 'admin123'
                }
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
  • 2.在app module的build.gradle中引入依赖

    apply plugin: 'com.android.application'
    
    android {
        ...
    }
    
    dependencies {
        ...
    
        implementation 'com.gale.android:first_lib:1.0.0'
    }
    
  • 3.在MainActivity中使用远程仓库中的first_lib中创建的TestActivity

    package com.gale.nexustest;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    import com.gale.first_lib.TestActivity;
    
    public class MainActivity extends AppCompatActivity {
    
        private Button mBtnStartActivity;
        private MainActivity mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mContext = this;
    
            mBtnStartActivity = findViewById(R.id.btn_start_activity);
            mBtnStartActivity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //TestActivity来自远程仓库
                    Intent i = new Intent(mContext, TestActivity.class);
                    startActivity(i);
                }
            });
        }
    }
    
  • 4.运行结果

    在这里插入图片描述

十.最后可通过’./nexus stop’关闭nexus服务器

发布了79 篇原创文章 · 获赞 45 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gzx110304/article/details/104603710