专栏首页恩蓝脚本android 上传aar到私有maven服务器的示例

android 上传aar到私有maven服务器的示例

2860元腾讯云代金券免费领取,付款直接抵现金,立即领取>>>

腾讯云海外服务器1折限时抢购,2核4G云主机689元/1年,立即抢购>>>

腾讯云服务器1折限时抢购,2核4G云主机689元/3年,立即抢购>>>

搞这个东西也是花了蛮长时间,主要还是对gradle中的groovy语言不熟悉所导致的,写下来,以防下次再入坑~

在gradle中新建task

如果你需要将某个module打包成aar,并上传到maven上去,需要在这个module下面的build.gradle文件中添加如下代码:

其中代码:

apply plugin: 'maven'

表示我们要应用的插件。

MAVEN_LOCAL_PATH表示maven服务器地址,packaging表示需要打包的类型,groupId:artifactId:version,就是我们需要依赖的字段。

上传aar到maven服务器

在studio中打开控制台,执行命令

./gradlew uploadArchives

就能看到log一直跑,直到99%上传aar,如果提示buildSuccessful,那祝贺你,你已经将aar文件上传到maven服务器了。

上传时遇到的问题

执行上传任务时,其实遇到蛮多问题的,这里记住几个就都写下来~

fail to resolve: TestProject:datalibrary:unspecified

解决办法:将

compile 'com.android.commonlibrary:datalibrary:0.1.0'

改为

compile 'com.android.commonlibrary:datalibrary:[email protected]'

详情请见http://stackoverflow.com/questions/36114259/errorfailed-to-resolve-android-iconicslibrary-coreunspecified

return Code 401

解决办法:这是上传的账号密码不对,请跟maven仓库管理员认真核实申请的账号密码。

Fix the issues identified by lint

这个错误具体截图所示:

根据log提示,我们需要在每个module的build.gradle文件中的android域内添加代码

android{
  lintOptions{
  abortOnError false
 }
}

记住,是每个module都得添加,不然还是会出错,血淋淋的教训呐

声明需要引用的maven服务器

在我们主工程的最外层的build.gradle中,添加如下代码:

allprojects {
 repositories {
  jcenter()
  maven {
   url "http://192.168.1.107:9999/repository/commonlibrary/"
   credentials {
    username 'louxiaohui'
    password '111111'
   }
  }
 }
}

注意:由于现在经常用的jcenter,bintray,nexus,aar包都是public的,所以声明maven服务器时,不需要设置账号密码,但是对于有些设置了账号密码的,就得添加代码进行认证~

credentials {
 username 'louxiaohui'
 password '111111'
}

PS: 这都是血淋淋的教训,由于对groovy语言不熟悉,我对credentials这个关键字都找了好久,才知道这货是用来认证账号密码的。。。

引用aar

这个就简单啦,代码大家应该都很熟悉,在需要引用此aar的 module中的build.gradle文件中,添加如下代码:

compile 'com.android.commonlibrary:datalibrary:0.1.0'

以上就是本文的全部内容,希望对大家的学习有所帮助。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android依赖管理与私服搭建

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

    Javen
  • Android:发布aar包到maven仓库以及 maven插件 和 maven-publish 插件的区别

    在日常开发中,不可避免的需要把自己的 library 发布到 maven 仓库中,这样使用起来也更加方便。

    分你一些日落
  • Android工程化实践:组件化发布

    POM(Project Object Model)指项目对象模型,用于描述项目构件的基本信息。一个有效的 POM 节点中主要包含一下信息:

    Rouse
  • 将Gradle项目发布到Jcenter和Maven Central

    Jcenter和Maven Central 为了方便我们理解Android studio是如何帮助我们获取开源库的,我们需要理清几个概念。Apache Mave...

    xiangzhihong
  • SDK集成第三方依赖发布Maven的方法

    aar引用很简单,将aar复制到libs包下,在项目的build.gradle文件中增加以下代码即可(以aarName.aar为为例):

    Anymarvel
  • Gradle For Android(3)--管理依赖关系

    依赖关系管理是Gradle的闪光点。在这个脚本中最好的一点,就是你所需要的只是添加一行到你的build.gradle中,然后Gradle就会从一个远程仓库中下载...

    None_Ling
  • Android Studio 上传aar(Library)到JCenter

    这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,发布自己的android library(也就是aar)到公共的jcenter仓库。 为...

    Javen
  • 这是一份详细&清晰的 上传Android Library到JCenter 教程:如何使得自己的代码被别人优雅引用

    1.对于eclipse: 下载包 --> 放入到 lib 文件目录 2.对于Android Studio:在build.gradle文件中添加依赖。如下图

    Android技术干货分享
  • 这是一份详细&清晰的 上传Android Library到JCenter 教程:如何使得自己的代码被别人优雅引用

    本文主要讲解如何通过bintray-release插件快速上传代码(Library)到 Jcenter

    Carson.Ho
  • Gradle发布maven到jcenter, 并构建自己的企业Maven私服

    Andorid开发者经常会看到xx公司发布了xx项目,xx公司提供了gradle配置路径,我们就能轻松的使用它们的项目到自己的工程中:

    开发者技术前线
  • Android SDK 开发——发布使用踩坑之路

    刚好最近自己遇到了类似需求,在开发完 SDK 之后,集成到项目或者提供给别人的时候遇到了一些坑,这里分享一下,以避免其他需要开发 SDK 的开发者们重复踩坑。

    AndroidTraveler
  • Android Studio之gradle的配置与介绍

    Android Studio之gradle的配置与介绍 非著名程序员 1、gradle的简单介绍 Gradle是可以用于Android开发的新一代的Build ...

    非著名程序员
  • Android的Nexus搭建Maven私有仓库

    Anonymous_95975_565
  • Flutter 工程化搭建(Android端)

    为了积极拥抱新技术并优化RN的性能问题,所以决定在新业务需求中引入Flutter技术栈

    无辛
  • Android打包Flutter模块上传到maven仓库的最佳实现

    在混合开发中,把Flutter模块打包成aar提供给宿主工程依赖可以很大成都降低团队Flutter的学习成本,也是很多混合开发团队的首选,但是如何把build出...

    玖柒的小窝
  • 有赞 Flutter 混编方案

    目前准备试水 Flutter,但是多数 native 开发是不了解 Flutter,因此需要设计一种比较“舒服”的集成方式。

    有赞coder
  • 有赞 Android 编译进阶之路——全量编译提效方案

    接下来的章节,我们从底层剖析 EnjoyDependence 的实现原理,主要包括:aar 发布、依赖管理、自动发布等内容。

    有赞coder
  • 重新认识AndroidStudio和Gradle,这些都是你应该知道的

    本文要从AndroidStudio的环境安装升级,Gradle,Eclipse转AS,多渠道配置,Maven私服,Action,Option,快...

    open
  • 浅谈android nexus私服的使用

    先唠叨几句啊,由于公司私服已经搭好了我就不费那劲琢磨搭建私服的事了,直接开撸上传lib。下图是我放组件库的地方,本来想一个module拉出一个项目来维护,后来想...

    砸漏

扫码关注云+社区

领取腾讯云代金券

http://www.vxiaotou.com