使用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文件

在工程目录的build.gradle文件中添加:

  1. apply plugin: 'maven'
  2. android{
  3. // ...
  4. }
  5. // ext is a gradle closure allowing the declaration of global properties
  6. ext {
  7. PUBLISH_GROUP_ID = 'com.ione'
  8. PUBLISH_ARTIFACT_ID = 'demo'
  9. PUBLISH_VERSION = android.defaultConfig.versionName
  10. }
  11. uploadArchives {
  12. repositories.mavenDeployer {
  13. def deployPath = file(getProperty('aar.deployPath'))
  14. repository(url: "file://${deployPath.absolutePath}")
  15. pom.project {
  16. groupId project.PUBLISH_GROUP_ID
  17. artifactId project.PUBLISH_ARTIFACT_ID
  18. version project.PUBLISH_VERSION
  19. }
  20. }
  21. }

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

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

路径为第二步clone repo选择的目录。

发布aar文件前,只需要在工程目录下执行命令:

  1. gradlew uploadArchives

即可生成上传至以github作为maven仓库的所需文件。然后把在第二步clonerepo选择的目录中更新的文件push到github上,即可完成发布。

2、发布jar文件

通过以下命令将本地的jar包安装到此目录下:

  1. 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文件,
例如:

  1. mvn-repo-demogit:(master) tree
  2. .
  3. ├── LICENSE
  4. ├── README.md
  5. └── repository
  6. └── com
  7. └── ione
  8. └── demo
  9. ├── 1.0
  10. │   ├── demo-1.0.jar
  11. │   ├── demo-1.0.jar.md5
  12. │   ├── demo-1.0.jar.sha1
  13. │   ├── demo-1.0.pom
  14. │   ├── deno-1.0.pom.md5
  15. │   └── demo-1.0.pom.sha1
  16. ├── maven-metadata-local.xml
  17. ├── maven-metadata-local.xml.md5
  18. └── maven-metadata-local.xml.sha1
  19. 5 directories, 11 files

然后通过git push 将生成的maven 文件push
到github 上去,即可完成发布。

第四步:

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

在工程的build.grade
文件中添加:

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

即可完成集成。

关闭 将jar或者aar发布到到mvn 中(用github作为仓库), 通过gradle dependency 方式集成的更多相关文章

  1. 将jar要么aar公布到到网mvn 在(使用github作为仓库), 通过gradle dependency 信息集成

    使用Android Studio用户开发,都希望通过maven该方式整合远程仓库jar.aar文件.但如何将这些文件发布它? 发人员都会将jar文件公布到sonatype上,以提供给其它开发人员集成, ...

  2. [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  3. [转][Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

     转自:http://blog.csdn.net/qiujuer/article/details/39754517?utm_source=tuicool [Android][Android Studi ...

  4. 转-Android Studio *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  5. [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  6. 【Android端】代码打包成jar包/aar形式

    Android端代码打包成jar包和aar形式: 首先,jar包的形式和aar形式有什么区别? 1.打包之后生成的文件地址: *.jar:库/build/intermediates/bundles/d ...

  7. [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法(转)

    [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法http://blog.csdn.net/qiujuer/article/details/ ...

  8. Android Studio工程项目打包成SDK(jar或aar格式)

    Android工程项目打包成SDK 在app的gradle下进行设置: (1)将apply plugin: ‘com.android.application’ 改为apply plugin: ‘com ...

  9. AS 3.1 项目打包成jar或aar

    1.首先明白一个道理. Android Studio编译的时候会自动将项目生成jar和aar的,我一开始以为jar需要自己单独生成,其实AS已经自动生成了,网上找的很多资料都是一个复制的过程而已. 只 ...

随机推荐

  1. 【136】Cydia相关插件及配置

    插件推荐: iFile:进行文件管理! Music2iPod:同步音乐到iPod内部! LabelEnhance:标签颜色修改! Bridge:貌似功能强大,与Music2iPod类似! Activa ...

  2. HDU1244:Max Sum Plus Plus Plus

    题目链接:Max Sum Plus Plus Plus 题意:在n个数中取m段数使得这m段数之和最大,段与段之间不能重叠 分析:见代码 //dp[i][j]表示前i个数取了j段的最大值 //状态转移: ...

  3. eclipse本地怎么和git相同

    1.打开Eclipse后,在左侧的项目窗口空白处右键,选择“Import...”2.打开Import窗口后,选择“Git”->"Projects from Git",点击“N ...

  4. bzoj 4827: [Hnoi2017]礼物【FFT】

    记得FFT要开大数组!!开到快MLE的那种!!我这个就是例子TAT,5e5都RE了 在这题上花的时间太多了,还是FFT不太熟练. 首先看70分的n方做法:从0下标开始存,先n--,把a数组倍增,然后枚 ...

  5. springboot(九) Cache缓存和Redis缓存

    1. Cache缓存 1.1 缓存的概念&缓存注解 Cache 缓存接口,定义缓存操作.实现有:RedisCache.EhCacheCache.ConcurrentMapCache等 Cach ...

  6. htm 与 html 的区别

    htm 与 html 的区别 前者是超文本标记(Hypertext Markup) 后者是超文本标记语言(Hypertext Markup Language) 可以说 htm = html 同时,这两 ...

  7. saltstack实战笔记

    #运维管理工具 ansible #支持ssh,不需要客户端 saltstack #也是只是ssh,不需要客户端的 安装架构是,master /minion 安装salt的依赖模块 python zer ...

  8. jQuery html操作

    jQuery 拥有可操作 HTML 元素和属性的强大方法. jQuery DOM 操作 DOM = Document Object Model(文档对象模型) jQuery 中非常重要的部分,就是操作 ...

  9. bzoj2002 [Hnoi2010]Bounce 弹飞绵羊【分块】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 这一题除了LCT解法,还有一种更巧妙,代码量更少的解法,就是分块.先想,如果仅仅记录每 ...

  10. (二)python高级特性

    一.切片 >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python ...