Gradle系列之从零搭建Maven私服库

原文发于微信公众号 jzman-blog,欢迎关注交流。

前面几篇文章学习了 Gradle 相关知识,Gradle 系列文章如下:

今天的内容是使用 Nexus Repository Manager 搭建 Maven 私服库,这样可以将一些通用的库项目提取出来供其他项目使用,如工具库、基本组件库等,下面将从零开始搭建 Maven 私服库,

  1. 安装Nexus服务
  2. 运行Nexus服务
  3. 发布库项目
  4. 使用库项目
  5. 总结

安装Nexus服务

在如下地址下载 Nexus 安装包:

http://www.sonatype.com/download-oss-sonatype

选择适合自己的版本进行下载,如这里选择的是 nexus-3.13.0-01-win64,下载完成之后解压,有两个文件夹如下:

//nexus服务
nexus-3.13.0-01
//nexus相关配置文件,如日志、仓库、索引、缓存等配置文件
sonatype-work

然后打开 cmd 命令提示符以管理员方法运行,进入 Nexus 服务解压目录下的 bin 目录下执行如下命令来安装 Nexus 服务,参考如下:

nexus.exe/install

执行完成后 Nexus 服务就安装完成了,安装 Nexus 服务成功执行结果参考如下:

E:\Gradle\Nexus\nexus-3.13.0-01-win64\nexus-3.13.0-01\bin>nexus.exe/install
Installed service 'nexus'.

运行Nexus服务

安装完成 Nexus 服务之后执行如下命令来运行 Nexus 服务,参考如下:

nexus.exe/run

执行该命令会启动 Nexus 服务,执行成功的关键信息如下:


E:\Gradle\Nexus\nexus-3.13.0-01-win64\nexus-3.13.0-01\bin>nexus.exe/run
Preparing JRE ...
2018-09-10 23:02:21,265+0800 INFO  [FelixStartLevel] *SYSTEM org.sonatype.nexus.pax.logging.NexusLogActivator - start
//...
-------------------------------------------------

Started Sonatype Nexus OSS 3.13.0-01

-------------------------------------------------
//...

当 Nexus 服务正常启动之后,可使用如下地址访问 Nexus 服务,具体如下:

http://localhost:8081/ 

运行结果如下所示:

在这里插入图片描述

创建仓库

使用默认账户名 admin 和默认密码 admin123 登录成功之后,然后选择设置(小齿轮),在左侧选择 Security->Users,然后选择创建用户 Create local user 输入相关信息账号创建完成,然后使用刚才创建的新账号登录,然后就可以在自己的账号下面创建仓库了,可参考下图:

在这里插入图片描述

发布库项目

仓库创建好了之后就可以发布项目到仓库中了,这里首先使用 Android Studio 创建一个库项目 test,然后在其 build.gradle 文件中配置上传该库的 Task,看一下该库使用的插件:

//使用Android Library插件
apply plugin: 'com.android.library'
//使用maven插件
apply plugin: 'maven'

//Upload Task用于发布上传
uploadArchives{
    repositories{
        mavenDeployer{
            //正式发布仓库
//            repository(url:"http://localhost:8081/repository/jzman-releases/"){
//                authentication(userName:"jzman",password:"nexus2410.")
//            }
            //快照版本的仓库
            snapshotRepository(url:"http://localhost:8081/repository/jzman-snapshots/"){
                authentication(userName:"jzman",password:"nexus2410.")
            }

            pom.project {
                //版本号,如果是快照版本,其版本号后面应该添加-SNAPSHOT,否则不能正常识别上传
                version '1.0.0-SNAPSHOT'
                //一般写项目名称即可
                artifactId 'testWidget'
                //组别,类似包名,保证唯一性
                groupId 'com.manu.test'
                //打包格式
                packaging 'aar'
                //描述
                description '测试maven私服搭建'
            }
        }
    }
}
//...

配置完用于上传库项目的 task 之后,就可以根据需要上传到之前创建的对应仓库中了,执行上传 task 可使用 Android Gradle 提供的快捷方式,如下图所示:

在这里插入图片描述

等待 uploadArchives 执行完毕后对应的库项目就发布到对应的仓库了,下面是发布到了正式仓库,如下图所示:

在这里插入图片描述

正式版发布每次必须的更改版本号,否则不能发布成功,下面是发布到了快照仓库,如下图所示:

在这里插入图片描述

如果将库项目发布到快照仓库中,可以多次上传发布,每次不需要修改版本号,它会自己维持在原来版本号的基础上自增,如 1.0.0-时间戳-1、1.0.0-时间戳-2等,实际使用时还是用版本号 1.0.0-SNAPSHOT,使用时 Maven 会自动下载最新的快照版本,也就是序号最大的快照版本,这种方式便于将库项目发现的问题及时发布上去,有助于快速迭代,等到没有问题就可以发布正式版本了。

使用库项目

库项目是发布成功之后,就可以在任意的项目中使用这个库项目了,在项目下的 build.gradle 文件中配置项目使用的 Maven 仓库:

//...

allprojects {
    repositories {
        //...
        //配置maven仓库
        maven {
            url 'http://localhost:8081/repository/jzman-releases/'
        }
    }
}

//...

然后,在具体的项目中就可以配置对应依赖就可以使用这个库项目了,配置依赖如下:

dependencies {
    //...
    //配置依赖库项目
    compile 'com.manu.test:testWidget:1.0.0'
}

总结

本篇文章的主要内容就是在本地搭建一个可用的 Maven 私服库,实际开发中只需根据上述内容将对应的仓库地址更换为自己公司的仓库地址即可,其他如 jcenter 库的搭建也类似,这篇文章的内容就到此为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


安装环境都很简单,就是下载工具需要在华为开发者联盟里注册,然后认证,扫码认证我这边是不可以的,人工认证需要两个工作日审核安装成功之后遇到了很多报错,网上都是可以解决的,遇到下面这个报错网上查了很多方式也解决不了,于是记录一下  找了很久,发现网上说的我都配置了,添加 allow
上传的方式有两种,第一种是通过bintray官方出的插件bintray/gradle-bintray-plugin第二种是一个国外组织开源的插件novoda/bintray-release 这里讲bintray/gradle-bintray-plugin  1.在项目根目录下的 build.gradle 添加插件依赖 dependencies{classpat
转载自: 完美解决Error:SSLpeershutdownincorrectly打开gradle文件夹下的gradle-wrapper文件修改其中的配置文件将红色区域修改为http://services.gradle.org/distributions/等待编译完成
https://www.jianshu.com/p/9220227cdfb3buildscript{ext.kotlin_version='1.2.71'repositories{google()jcenter()}dependencies{//classpath'com.android.tools.build:gradle:3.1.0-alpha09'
Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantao@sina.com发布库到仓库mavenjcenterJitPackMD目录目录通过AS创建aar的步骤发布到Github仓库【推荐】创建项目配置项目构建并上传上传
 跟着教程做的,已经有了JDK,直接进行后面的步骤,下载安装AndroidSDK没有FQ,教程里的网址打不开,就换了个。网址http:/ools.android-studio.org/index.php/sdk下的.exe  nextinstall然后就是漫长的等待 ……先这样吧开始下载AndroidStudio,网址http://www.and
今天更新了universal-image-loader-1.9.5.jar文件,studio死活找不到其中相关的类,上网百度试了很多办法,总算解决了,具体方法跟一篇老外的帖子的差不多,这里分享下。 解决步骤:Somethingwentwronginincrementalbuildsystem.Oneofthisshouldhelp:MenuBuild->Rebuild
https://blog.csdn.net/zxc514257857/article/details/80425711编写不易,如有转载,请声明出处:梦回河口:https://blog.csdn.net/zxc514257857/article/details/80425711报错一:Error:Unabletofindmethod'com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDepe
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow                     创建兼容AndroidStudio和eclipse的AS工程虽然我的博客名叫eclipse_xu,但是我已经将
gradle跳过测试直接编译gradlebuild-xtest  根据build.gradle和setting.gradle文件生成idea项目:gradleidea  gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不是所有人都对gradle很熟悉,下面的方法可以把gradle转成maven项目,前提gradle项
本地仓库配置配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包。 远程仓库配置一般Gradle、maven从中央仓库mavenCentral()http:/epo1.maven.org/maven2/下载依赖包,但是在国内下载速度巨慢,我们只能使用国内的镜像。所以每个Gradle构建的项目
what:Buildtool(构建工具)是从源代码自动创建可执行应用程序的程序。构建包括将代码编译,链接和打包成可用或可执行的形式。在小项目中,开发人员通常会手动调用构建过程。这对于较大的项目来说是不实际的,在这些项目中,很难跟踪需要构建的内容,构建过程中的顺序和依赖关系。使用自动化工
说明:该示例为在windows系统下自动化部署springboot架构:springboot+github+gradle+jdk8各种配置步骤及截图说明:1、配置git,gradle及jdk  系统管理→全局工具配置  说明:其中git配置项中的PathtoGitexecutable要指到git.exe文件,maven的配置方式和gradle类似
AndoridStudio模块化开发相关配置下面以宿主APP模块和Uer_Module模块为例:第一步:在项目根目录gradle.properties配置文件中添加如下代码isNeedUserModule=true#isNeedUserModule=false 第二步在user_module中的build.gradle文件中加入了如下代码来控制此库是library还
buildtools构建工具能够帮助你创建一个可重复的、可靠的、携带的且不需要手动干预的构建。构建工具是一个可编程的工具,它能够让你以可执行和有序的任务来表达自动化需求。假设你想要编译源代码,将生成的class文件拷贝到某个目录,然后将该目录组装成可交付的软件。如下图所示,展示了所
Git及用法Git是目前世界上最先进的分布式版本控制系统。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上
打release包的时候,出现这个玩意,但debug直接跑apk又没问题。Causedby:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:ExpectedanamebutwasSTRINGatline1column99path$[0].apkInfo.versionNameatcom.google.gson.internal.bind.
android\gradle\wrapper\gradle-wrapper.properties由distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.12.1-all.
1.上传本地仓库1.1build.gradle项目设置plugins{id'java'id'maven'//引入maven插件}group'com.inkyi'//包名version'1.0.1-SNAPSHOT'//版本号1.2 build.gradle上传设置//指定上传的路径deflocalMavenRepo='file://'+new
Gradle的Emas服务插件会加载您下载的aliyun-emas-services.json文件。请修改工程的build.gradle使用该插件。配置步骤如下:1.修改项目级目录下build.gradle({project}/build.gradle):1buildscript{2repositories{3maven{4url'http://maven.aliyun.com