Android 將Library 發(fā)布本地maven倉庫 (Mac OS環(huán)境)
(最近在學習項目模塊化開發(fā)忌警,寫下 Library 項目下如何發(fā)布引用相關)
maven安裝配置
- 下載安裝 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.
- 配置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ā)布到本地
- 新建一個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ā)布
直接通過命令行發(fā)布到本地
- 將獲取到的 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
- 引入依賴文件pom.xml
<dependency>
<groupId>com.evinlo.android</groupId>
<artifactId>pay</artifactId>
<version>1.1.1</version>
</dependency>
使用本地倉庫
- 在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()
}
}
- 在需要引用包的項目里層的 build.gradle添加
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api 'com.evinlo.android:pay:1.1.1' //新增
}