maven私服快速入门
android 开发时,类库依赖管理一般是拷贝到相应 libs 目录然后配置文件中引用该类库,或者引用 jceneter 中第三方类库等。
前者简单粗暴但是一旦类库有新版本更新,需要重新拷贝一份库到该目录下更新,同时造成整个工程初次check下来时体积偏大。后者可能受限于网络会导致很多类库无法获取导致编译失败等问题。
假如说要是我们能在本机或者局域网服务器搭建并使用 maven 仓库,一来可以解决更新类库靠拷的原始方式,二来也不用担心连不上外网导致获取类库失败。同样可以提高团队开发的效率。
一、maven私服搭建
先在 nexus 官网 下载适合你机器的版本,我这里选择的是 nexus-3.0.1 mac 版本。下载后解压并启动服务,然后进行简单的配置,在这里就不详述了,相关内容请自行查阅。
二、maven私服仓库使用
这里假设你把 nexus 安装在了本机,仓库地址为 http://localhost:8081/repository/test/。如果把 nexus 安装在了局域网服务器,基本类似,只是仓库地址中的 localhost 改为局域网服务器 ip 。
上传
好了,我们现在新建一个项目,让该项目上传到仓库,该怎么做呢?其实很简单,就是在我们的项目的app.gradle中的android节点下添加如下代码:
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://127.0.0.1:8081/repository/test/") {
authentication(userName: "admin", password: "admin123")
}
pom.version = "0.0.2"
pom.artifactId = "testlib"
pom.groupId="com.test"
}
}
}
简单的说明下,
repository:代表是即将上传仓库的地址
authentication:连接仓库的一些属性,用户名和密码
pom:配置仓库的基本信息,version:版本号,artifactId,groupId,则代表的是最后compile的仓库信息
下载引用
前面刚到了如何上传,当然也就少不了如何引用的了
引用的就非常简单了
1、在项目的project的build.gradle文件中添加如下信息:
allprojects {
repositories {
google()
jcenter()
mavenLocal()
}
}
2、在项目的app的build.gradle中添加下面的代码:
allprojects{
repositories {
maven {
url "http://127.0.0.1:8081/repository/test/"
}
}
}
compile "com.test.testlib:0.0.2"
到此为止,我们就能成功的引用本地仓库了。
好了,本文就简单的介绍了如何使用maven搭建私服,以及上传文件和下载使用文件
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- ThinkPHP5+jQuery+MySql实现投票功能
- Smarty模板配置实例简析
- php利用ZipArchive类操作文件的实例
- Yii框架页面渲染操作实例详解
- PHP数据源架构模式之表入口模式实例分析
- PHP pthread拓展使用和注意点
- centos6.5下安装zabbix2.4的教程图解
- php经典趣味算法实例代码
- centos7 设置grub密码及单用户登录实例代码
- php面向对象基础详解【星际争霸游戏案例】
- Linux系统下Nginx支持ipv6配置的办法
- Smarty模板变量与调节器实例详解
- Linux中搭建完整的samba服务器全攻略(centos版)
- Thinkphp5 自定义上传文件名的实现方法
- PHP读取文件,解决中文乱码UTF-8的方法分析