理解Maven
Maven是一個項目管理和綜合工具。Maven提供了開發(fā)人員構建一個完整的生命周期框架翅帜。開發(fā)團隊可以自動完成項目的基礎工具建設,Maven使用標準的目錄結構和默認構建生命周期命满。
Maven在Android的角色
android中引用包的方式分為兩種:
1>本地 lib 引用
repositories {
? ? ? flatDir {
? ? ? ? ? ? ?dirs 'libs'
? ? ? ? }
}
dependencies {
// 前面是項目名涝滴,記住不帶arr后綴,后面是后綴
compile(name: 'mylibrary', ext: 'aar')
//引用一個library
compile project(':qqEmoji-lib')
//引用jar
compile files('libs/libammsdk.jar')
}
2>Maven 引用
buildscript {
? ? ?repositories {
? ? ? ? ?//mavenCentral托管
? ? ? ? ?maven{
? ? ? ? ? ? ? url ' 'http://maven.aliyun.com/nexus/content/groups/public'' //maven托管地址?
? ? ? ? ?}
? ? ? }
? ? ? dependencies {
? ? ? ? ? ? //gradle 版本
? ? ? ? ? ? ?classpath 'com.android.tools.build:gradle:1.0.1'
? ? ? ? }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//maven引用包
compile 'com.android.support:appcompat-v7:25.3.1'
}
library制成jar/aar上傳至Maven
1.尋找一個library胶台,打開其下的gralde文件進行編輯
2.編輯gradle文件
在dependencies()后追加以下操作:
task claen(type: Delete) {
delete rootProject.buildDir
}
uploadArchives {
? ? ?repositories {
? ? ? ? ? mavenDeployer {
? ? ? ? ? ? ? repository(url: "file:/E:/maven") { ? //此處可以為本地路徑歼疮,也可為域名url
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?pom.project {
? ? ? ? ? ? ? ? ? ? ?groupId 'com.licrafter.android'
? ? ? ? ? ? ? ? ? ? ?artifactId 'licralibrary'
? ? ? ? ? ? ? ? ? ? ? version '1.0.0'
? ? ? ? ? ? ? ? ? ? ? ?packaging 'aar'
? ? ? ? ? ? ? ? }
? ? ? ? ? ?}
? ? ? }
}
task androidJavadocs(type: Javadoc){
? ? ? ? ?options {
? ? ? ? ? ? ? windowTitle = 'licralibrary 1.0.0-SNPHOST doc'
? ? ? ? ? ? ? ?docTitle = 'licralibrary 1.0.0-SNPHOST doc'
? ? ? ? ? ? ? ? failOnError = false encoding = 'utf-8'
? ? ? ? ? ? ? ? ?charSet = 'utf-8'
? ? ? ? ?}
source = android.sourceSets.main.java.srcDirs
}
task androidJavaDocsJar(type: Jar, dependsOn: androidJavadocs) {
? ? ? classifier = 'javadoc'
? ? ? from androidJavadocs.destinationDir
}
task androidSourceJar(type: Jar) {
? ? ? ? ?classifier = 'sources'
? ? ? ? ?from android.sourceSets.main.java.srcDirs
}
artifacts {
? ? ? ?archives androidJavaDocsJar
? ? ? ?archives androidSourceJar
}
tasks.withType(JavaCompile) {
? ? ? ? ? options.encoding = 'UTF-8'
}
tasks.withType(Javadoc) {
? ? ? ? ? ?options.encoding = 'UTF-8'
}
執(zhí)行命令
gradle clean uploadArchives
執(zhí)行命令將arr/jar上傳至Maven
如何引用
添加將Maven路徑
在此gradle文件中allprojects()方法下編寫:
引用
在主項目上引用包
至此我們完成了將library制成jar/arr,上傳至了Maven并且完成了maven的引用