理解Maven
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,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'
}
执行命令
gradle clean uploadArchives
执行命令将arr/jar上传至Maven
如何引用
添加将Maven路径
在此gradle文件中allprojects()方法下编写:
引用
在主项目上引用包
至此我们完成了将library制成jar/arr,上传至了Maven并且完成了maven的引用