Android 将Library 发布本地maven仓库

Android 将Library 发布本地maven仓库 (Mac OS环境)

(最近在学习项目模块化开发,写下 Library 项目下如何发布引用相关)

maven安装配置

  1. 下载安装 maven
    从官网https://maven.apache.org/download.cgi下载 Maven 并解压 (下面是maven 官方说明文档)
Installing Maven
  ----------------
  1) Unpack the archive where you would like to store the binaries, e.g.:
    Unix-based operating systems (Linux, Solaris and Mac OS X)
      tar zxvf apache-maven-3.x.y.tar.gz
    Windows
      unzip apache-maven-3.x.y.zip
  2) A directory called "apache-maven-3.x.y" will be created.
  3) Add the bin directory to your PATH, e.g.:
    Unix-based operating systems (Linux, Solaris and Mac OS X)
      export PATH=/usr/local/apache-maven-3.x.y/bin:$PATH
    Windows
      set PATH="c:\program files\apache-maven-3.x.y\bin";%PATH%
  4) Make sure JAVA_HOME is set to the location of your JDK
  5) Run "mvn --version" to verify that it is correctly installed.
  1. 配置maven 和 JDK 环境变量
  • 终端输入
    open -n ~/.bash_profile
#jdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
#android sdk
export ANDROID_HOME=/Volumes/data/android-sdk-macosx
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
#maven
export MAVEN_HOME=/Users/mac/apache-maven-3.6.0
export PATH=$MAVEN_HOME/bin:$PATH
  • 编辑完保存并退出
  • 输入 source ~/.bash_profile 使环境变量生效。
  • 输入 mvn -v 查看 Maven 否安装成功。
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /Users/mac/apache-maven-3.6.0
Java version: 1.8.0, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.2", arch: "x86_64", family: "mac"

发布到本地库

直接通过项目发布到本地

  1. 新建一个Libary项目,在最外层bulid.gradle 里添加
apply plugin: 'com.android.library'
apply plugin: 'maven' //新增
android {
    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    defaultConfig {
        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        versionCode Integer.parseInt(project.VERSION_CODE)
        versionName project.VERSION_NAME
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    provided 'com.android.support:support-annotations:25.3.1'
    provided 'com.chinaway.android:core:1.2.0'
}
uploadArchives{//新增
    repositories.mavenDeployer{
        // 本地仓库路径(/Users/mac/.m2/repository)路径注意改一下
        repository(url:"file:///Users/mac/.m2/repository/")
        // 唯一标识、包名
        pom.groupId = "com.evinlo.android"
        // 项目名称
        pom.artifactId = "pay"
        // 版本号
        pom.version = "1.1.1"
    }
}

通过gradlew uploadArchives发布到本地
也可以通过android studio 里的 右侧的gradle发布

maven_bulid.png

直接通过命令行发布到本地

  1. 将获取到的 jar 包或者 aar 包
mvn install:install-file -Dfile=xx.jar -DgroupId=xx -DartifactId=xx -Dversion=xx -Dpackaging=jar

-Dfile: jar的所在路径+jar包名+.jar
-DgroupId: 对应maven坐标的groupId
-DartifactId: 对应maven坐标的artifactId
-Dverson: 对应maven坐标的version
  1. 引入依赖文件pom.xml
<dependency>
<groupId>com.evinlo.android</groupId>
<artifactId>pay</artifactId>
<version>1.1.1</version>
</dependency>

使用本地仓库

  1. 在Android项目最外层的build.gradle文件中配置路径
buildscript {
    repositories {
        maven {//新增
            url 'file:///Users/mac/.m2/repository/'
        }
        maven { url "https://jitpack.io" }
        google()
        jcenter()
    }
    dependencies {
      `````
    }
}
allprojects {
    repositories {
        maven {//新增
            url 'file:///Users/mac/.m2/repository/'
        }
        maven { url "https://jitpack.io" }
        google()
        jcenter()
    }
}
  1. 在需要引用包的项目里层的 build.gradle添加
dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    api 'com.evinlo.android:pay:1.1.1'  //新增
}

后续补充远程仓库nexus maven

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,209评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,735评论 2 59
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,830评论 6 342
  • 之前我和弟弟关系没那么好时,基本上不会怎么吵闹。现在又好了,弟弟又开始话唠了,就有点想念他不话唠的时候。我还是喜欢...
    duoduo_four阅读 49评论 0 0
  • 有人写了一篇文。你可以羡慕嫉妒,但别恨。 今天是我实习生涯开始的第二周了……鬼知道我天天经历了什么。我也希望我的...
    嘻嘻哈哈的笑阅读 188评论 0 0