Android 將Library 發(fā)布本地maven倉庫

Android 將Library 發(fā)布本地maven倉庫 (Mac OS環(huán)境)

(最近在學習項目模塊化開發(fā)忌警,寫下 Library 項目下如何發(fā)布引用相關)

maven安裝配置

  1. 下載安裝 maven
    從官網(wǎng)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 環(huán)境變量
  • 終端輸入
    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 使環(huán)境變量生效乓土。
  • 輸入 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"

發(fā)布到本地庫

直接通過項目發(fā)布到本地

  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發(fā)布到本地
也可以通過android studio 里的 右側的gradle發(fā)布

maven_bulid.png

直接通過命令行發(fā)布到本地

  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'  //新增
}

后續(xù)補充遠程倉庫nexus maven

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子集惋,更是在濱河造成了極大的恐慌,老刑警劉巖踩娘,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刮刑,死亡現(xiàn)場離奇詭異,居然都是意外死亡养渴,警方通過查閱死者的電腦和手機雷绢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來理卑,“玉大人翘紊,你說我怎么就攤上這事∶赀耄” “怎么了帆疟?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵鹉究,是天一觀的道長。 經(jīng)常有香客問我踪宠,道長自赔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任殴蓬,我火速辦了婚禮匿级,結果婚禮上,老公的妹妹穿的比我還像新娘染厅。我一直安慰自己痘绎,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布肖粮。 她就那樣靜靜地躺著孤页,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涩馆。 梳的紋絲不亂的頭發(fā)上行施,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音魂那,去河邊找鬼蛾号。 笑死,一個胖子當著我的面吹牛涯雅,可吹牛的內(nèi)容都是我干的鲜结。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼活逆,長吁一口氣:“原來是場噩夢啊……” “哼精刷!你這毒婦竟也來了?” 一聲冷哼從身側響起蔗候,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤怒允,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锈遥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纫事,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年所灸,在試婚紗的時候發(fā)現(xiàn)自己被綠了丽惶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡庆寺,死狀恐怖蚊夫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情懦尝,我是刑警寧澤知纷,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布壤圃,位于F島的核電站,受9級特大地震影響琅轧,放射性物質(zhì)發(fā)生泄漏伍绳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一乍桂、第九天 我趴在偏房一處隱蔽的房頂上張望冲杀。 院中可真熱鬧,春花似錦睹酌、人聲如沸权谁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旺芽。三九已至,卻和暖如春辐啄,著一層夾襖步出監(jiān)牢的瞬間采章,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工壶辜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悯舟,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓砸民,卻偏偏與公主長得像抵怎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阱洪,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • 用兩張圖告訴你便贵,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料菠镇? 從這篇文章中你...
    hw1212閱讀 12,716評論 2 59
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • 之前我和弟弟關系沒那么好時冗荸,基本上不會怎么吵鬧。現(xiàn)在又好了利耍,弟弟又開始話嘮了蚌本,就有點想念他不話嘮的時候。我還是喜歡...
    duoduo_four閱讀 48評論 0 0
  • 有人寫了一篇文隘梨。你可以羨慕嫉妒程癌,但別恨。 今天是我實習生涯開始的第二周了……鬼知道我天天經(jīng)歷了什么轴猎。我也希望我的...
    嘻嘻哈哈的笑閱讀 188評論 0 0