Android 中打包成aar並上傳到Nexus搭建的maven倉庫
阿新 • • 發佈:2018-12-20
目的
方便元件化流通,搭建私有庫有助於多人協作開發專案,提高整合的穩定性和庫引用版本的可控性,也減少繁瑣的第三方庫的釋出工作。
環境搭建
-
下載 安裝Nexus–>配置環境,啟動伺服器(請自行百度,本文略)
-
修改localhost為電腦的ip (方便在區域網上檢視)
製作aar
-
在Android Studio(AS)中新建module,寫測試的介面,供打包成aar,方便專案引用
gradle.properties中的配置資訊:
#Maven倉庫的URL MAVEN_REPO_RELEASE_URL=http://192.168.1.7:8081/repository/maven-releases/ MAVEN_REPO_SNAPSHOT_URL=http://192.168.1.7:8081/repository/maven-snapshots/ #對應maven的GroupId的值 GROUP = demo.yangjun.com #登入nexus ossde的使用者名稱 NEXUS_USERNAME=admin #登入nexus oss的密碼 NEXUS_PASSWORD=admin123 # groupid GROUP_ID = testmaven # type TYPE = aar # description DESCRIPTION = This is LoginApi lib #連結:https://www.jianshu.com/p/6954613c13ef
module中的build指令碼如下:
apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'maven' android { compileSdkVersion 28 defaultConfig { minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { //是否混淆 注意混淆後有些api會被隱藏 minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { jniLibs.srcDirs = ['libs'] } } lintOptions { abortOnError false } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } uploadArchives { //新增 ,因為Android Studio gradle 支援maven外掛,所以可以新增此task configuration = configurations.archives repositories { mavenDeployer { snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) } repository(url: MAVEN_REPO_RELEASE_URL) { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) } pom.project { version '1.1.8' //版本名稱 上傳是不能和之前的一樣,否則上傳失敗 artifactId GROUP_ID //和前面網站上填寫的一樣 groupId GROUP //和前面網站上填寫的一樣 packaging TYPE //填寫aar description DESCRIPTION //更新描述 } } } }
之後找到AS中的gradle,執行該方法上傳到指定的maven地址。
maven伺服器的aar顯示情況:
使用方法:
在專案中build.gradle(Module:app)新增
注意事項
aar版本號不要和之前伺服器的重複