使用Android Studio用户开发,都希望通过maven该方式整合远程仓库jar、aar文件。但如何将这些文件发布它?

发人员都会将jar文件公布到sonatype上,以提供给其它开发人员集成,可是sonatype要求必须提供源代码,而有些情况下,公布者并不想提供源代码,这样能够使用本文介绍的方法。

以下就为大家解说怎样在github上创建仓库。将jar和aar文件公布到maven中,以及怎样集成。

第一步:

github.com 上创建一个repo,专门用作maven仓库使用。
比如https://github.com/ione/mvn-repo-ione

第二步:

使用git clone 命令将文件clone到本地。

第三步:

1、公布aar文件

在project文件夹的build.gradle文件里加入:

apply plugin: 'maven'

android{
// ...
} // ext is a gradle closure allowing the declaration of global properties
ext {
PUBLISH_GROUP_ID = 'com.ione'
PUBLISH_ARTIFACT_ID = 'demo'
PUBLISH_VERSION = android.defaultConfig.versionName
} uploadArchives {
repositories.mavenDeployer {
def deployPath = file(getProperty('aar.deployPath'))
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId project.PUBLISH_GROUP_ID
artifactId project.PUBLISH_ARTIFACT_ID
version project.PUBLISH_VERSION
}
}
}

当中aar.deployPath
可在gradle.properties
文件里指定:

aar.deployPath=E:\\dev\\workspace\\mvn-repo-ione\\repository

路径为第二步clone
repo选择的文件夹。

公布aar文件前。仅仅须要在project文件夹下运行命令:

gradlew uploadArchives

就可以生成上传至以github作为maven仓库的所需文件。

然后把在第二步clonerepo选择的文件夹中更新的文件push到github上。就可以完毕公布。

2、公布jar文件

通过下面命令将本地的jar包安装到此文件夹下:

mvn install:install-file -DgroupId=com.ione -DartifactId=demo -Dversion=1.0 -Dfile=E:\dev\libs\com.ione.demo.jar -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=E:\dev\workspace\ione\mvn-repo-ione\repository -DcreateChecksum=true

注意包名和路径

执行上述命令后在本地文件夹下就有了须要的maven文件,
比如:

mvn-repo-demogit:(master) tree
.
├── LICENSE
├── README.md
└── repository
└── com
└── ione
└── demo
├── 1.0
│ ├── demo-1.0.jar
│ ├── demo-1.0.jar.md5
│ ├── demo-1.0.jar.sha1
│ ├── demo-1.0.pom
│ ├── deno-1.0.pom.md5
│ └── demo-1.0.pom.sha1
├── maven-metadata-local.xml
├── maven-metadata-local.xml.md5
└── maven-metadata-local.xml.sha1 5 directories, 11 files

然后通过git push 将生成的maven 文件push
到github 上去,就可以完毕公布。

第四步:

在Android
Studio中集成jar文件或者aar文件

在project的build.grade
文件里加入:

repositories {
jcenter()
maven { url "https://raw.githubusercontent.com/ione/mvn-repo-ione/master/repository" }
}
dependencies {
compile 'com.ione:demo:1.0'
}

就可以完毕集成。

最新文章

  1. C++11 新特性: unordered_map 与 map 的对比
  2. sql通用的存储过程
  3. Linux内核 TCP/IP、Socket参数调优
  4. java微信开发框架wechat4j入门教程
  5. scrapy 爬取自己的博客
  6. 【weiphp微信开发教程】留言板插件开发详解
  7. linux 发布 qt(更新ld命令的路径依赖)
  8. npm install fetchmatedata慢的解决办法
  9. Python第二十四天 binascii模块
  10. Netty 4源码解析:请求处理
  11. Web前端 前端工程师首选的几款编辑器/IDE以及Markdown的编辑器、语法
  12. 20164319 刘蕴哲 Exp2 后门原理与实践
  13. CentOS上升级gcc编译器使支持C++11
  14. vue路由\导航刷新后:ative\localStorage\url截取参数
  15. Python学习 day03打卡
  16. ext.net tooltip
  17. ADT和DS
  18. Python Web学习笔记之递归和迭代的区别
  19. 渐进增强与优雅降级 && css3中普通属性和前缀属性的书写顺序
  20. gulp入门实践

热门文章

  1. android json 解析 简单示例
  2. javascripte (三) 改变html图像
  3. 简单的RPC java实现
  4. 在iPhoneApp中加载PDF
  5. Unity3D 游戏开发构架篇 ——输入控制
  6. 【MySQL案例】HA: GTID_MODE配置不一致
  7. Java抓取网页数据(原来的页面+Javascript返回数据)
  8. jQuery EasyUI API 中文文档 - 布局(Layout)
  9. [WebGL入门]十,矩阵计算和外部库
  10. Nginx特点