Android依赖管理与私服搭建

*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 *本篇文章视频 慕课网之Android依赖管理与私服搭建

1、Android引入依赖的多种方式
引入方式一

AS切换project视图>新建libs目录(高版本AS默认存在libs目录)>copy jar 包>add as library

下面以我开源的支付宝以及微信app支付项目为例引入相关的jar

方式一:add as library

直接使用Gradle-Sync Now

引入方式二(module>aar)

import module>Project Structure>选择对应的Module>module dependent 我们知道jar包是不能引入资源文件的,如果已module模式引入资源文件同样可以使用。

打开Project Structure-方式1

打开Project Structure-方式2

Project Structure

Lib Module 生成aar

New Module >Android Library>实现包功能并生成aar文件

构建生成aar

项目中引用aar文件

引用aar文件

以上两种引入jar依赖弊端就是jar包升级之后需要Copy替换换新的jar并修改对应的配置文件。

引入方式三(推荐)

从仓库中下载引用 找到jar对应的build.gradle>compile(jcentermavencentermavenlocal)>通过Nexue搭建私服

https://bintray.com/bintray/jcenter http://search.maven.org http://www.sonatype.org

部分网站访问需要科学上网,你懂的哈

Android Studio最新版默认使用的是jcenter,好处就是jar包升级自需要修改版本号,构建项目会自动从仓库中下载(只会下载一次,下载以后会从本地引入)。

AS默认使用的是**jcenter**

如何引入仓库中的jar

下面以引入retrofit为例

引入仓库中的jar-[retrofit](http://square.github.io/retrofit)

或者直接在对应项目Module的build.gradledependencies节点添加

compile 'com.squareup.retrofit2:retrofit:2.1.0'

最终配置

相互依赖的包也会下载下来,retrofit依赖okhttp依赖ikoi

相互依赖的包也会下载下来

2、多平台Nexus私服搭建

http://www.sonatype.org

http://books.sonatype.com/nexus-book/3.0/reference/index.html

Note: The GUI installer distribution development is suspended and is no longer an install option until further notice.

Nexus Repository Manager 3.1.0-04 开始并没有提供GUI的安装程序。建议JDK使用1.8版本。

官网首页

选择最新版本Nexus3

下载

安装介绍资料 http://books.sonatype.com/nexus-book/3.0/reference/install.html#installation-archive

解压下载的nexus $ tar xvzf nexus-3.0.2-02-mac.tgz $ tar xvzf nexus-3.0.2-02-unix.tar.gz

The bin folder contains the generic startup scripts for Unix-like platforms called nexus. The Windows platform equivalent is called nexus.exe. To start the repository manager from the bin folder on a Unix-like platform like Linux use ./nexus run The equivalent invocation on Windows requires a / in front of the run and any other commands. nexus.exe /run

简单解释就是Mac、Linux平台使用./nexus run Window平台使用 nexus.exe /run 运行Nexus Repository Manager

Mac

OSX archive下载解压

Linux

Unix archive解压

bin目录,执行 ./nexus run

运行Nexus服务

Nexus Repository Manager依赖的是Java开发环境,最新版JDK得1.8或者以上

提示设置INSTALL4J_JAVA_HOME_OVERRIDE

在nexus的bin目录修改nexus,设置INSTALL4J_JAVA_HOME_OVERRIDE

修改nexus1

配置默认的JAVA_HOME

启动Nexus

关闭防火墙 默认端口8081 systemctl stop firewalld

参考质料: http://books.sonatype.com/nexus-book/3.0/reference/install.html#installation-java

2.1、创建自己的仓库

1、创建用户 首先使用管理员密码登陆到Nexus私服并添加用户

登录

创建用户

使用新创建的用户登录Nexus并创建仓库

创建仓库1

创建仓库2

创建仓库3

创建完成

2.2、上传自己的Module到仓库

第一 在项目级别的build.gradle中的allprojects下repositories节点添加mavenLocal()

配置本地maven引用

第二 在Lib Module级别的build.gradle中添加maven插件apply plugin: 'maven'

添加maven插件

第三 在Lib Module级别的build.gradle中android节点添加上传行为

定义上传行为

解析: compile 'com.android.support:appcompat-v7:24.2.1' pom.version = "24.2.1" pom.artifactId = "appcompat-v7" pom.groupId ="com.android.support"

//定义上传行为
    uploadArchives {
        //仓库基于maven
        repositories.mavenDeployer {
            //配置上传的url
            repository(url: "http://192.168.1.100:8081/repository/com.javen205/") {
                authentication(userName: "javen", password: "javen205")
            }
            pom.version = "0.0.1"
            pom.artifactId = "JPay"
            pom.groupId = "com.javen205"
        }
    }

第四 使用Gradle插件上传aar到Maven私服

点击uploadArchives自动上传

上传aar到服务器

刷新页面重新查看

2.2、引用私服中的Module

在需要依赖Module的build.gradle中添加如下节点,其中URL就是上文中创建仓库的url

allprojects {
    repositories {
        maven {
            url "http://192.168.1.100:8081/repository/com.javen205/"
        }
    }
}
    compile 'com.javen205:JPay:0.0.1'

查看 ** External Libraries**

查看上面上传的aar应用成功

安利时间: JPay是对微信App支付、支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调

极速开发微信公众号是对微信公众平台接口的二次封装。包括开发者模式、事件回调监听、微信模板消息、微信客服消息、自定义菜单、微信支付、素材管理等

如遇到问题欢迎留言交流

记录学习的点滴,以此勉励不断奋斗的自己✌️✌️✌️ 如果对你有帮助记得点喜欢告诉我

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端萌媛的成长之路

浅谈前端安全

1.7K20
来自专栏Golang语言社区

HTTP协议漫谈

简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将H...

372130
来自专栏后台全栈之路

在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口

对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时...

69520
来自专栏微信公众号:Java团长

计算机网络基础:这是一份详细HTTP学习指南

15340
来自专栏Young Dreamer

webpack的Hot Module Replacement运行机制

使用webpack打包,难免会使用Hot Module Replacement功能,该功能能够实现修改、添加或删除前端页面中的模块代码,而且是在页面不刷新的前提...

32150
来自专栏Golang语言社区

HTTP协议漫谈

简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将H...

39460
来自专栏Java工程师日常干货

对缓存击穿的一点思考前言什么是缓存击穿?避免缓存击穿的思路分析代码抽象

缓存(内存 or Memcached or Redis.....)在互联网项目中广泛应用,本篇博客将讨论下缓存击穿这一个话题,涵盖缓存击穿的现象、解决的思路、以...

24120
来自专栏流柯技术学院

CAS客户端服务器端配置步骤

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一...

67620
来自专栏电光石火

Nexus3.x安装及配置

1.8K60
来自专栏Java进阶架构师

一篇文章带你详解 HTTP 协议(下)

我们可以自行改变 RFC2616 中定义的状态码或者服务器端自行创建状态码,只要遵守状态码的类别定义就可以了。

11720

扫码关注云+社区

领取腾讯云代金券