Gradle的maven使用

0. 创建一个name为“test”的Module,完成Module的编写

1. 构建maven

1.1 修改build.gradl(Module:My_Appliction.test,test的build文件),内容如下

plugins {
    id 'com.android.library'
    // TODO step1:add id
    id 'maven-publish'
}

 //TODO step2:引入任务包
task generateSourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier 'sources'
}


//TODO step3:add publishing config
publishing {
    publications {
        maven(MavenPublication) {
            groupId = 'com.miex.sdk.test'       //组id:是具有相同功能的Module放一个组?
            artifactId = 'test'     //项目名称
            version = '1.2'   //项目版本号
            afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }  // 依赖 bundleReleaseAar 任务,并上传其产出的aar
            artifact generateSourcesJar  // 上传source,这样使用方可以看到方法注释(上传包含注释的源码,否则源码上传时会被省略掉?)
        }
    }
    repositories {
        // 定义上传目标库时你的凭证和目标库的url
        maven {
             credentials {
                 username '6142ae6250a118************'
                 password 'ymPq-]0G*********'
             }
             url 'https://packages.aliyun.com/maven/repository/213***-rele***-rE***'
                     }
    }
}


android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    //TODO step4:add implementation fileTree
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

1.2 点击下图的Sync Now

在这里插入图片描述

1.3 构建

最后运行gradle生成的publish 文件 即可生成并上传lib组件;
Gradle的maven使用_第1张图片

可能遇到的问题:

  • JAVA 版本的不合适,需要下载安装合适的SDK
  • Gradle没有publish
    没有Task展示,File->Settings->Experimental->Do not build Gradle task list during Gradle sync 去掉勾选Ok 关闭,然后在sync下就有了

2. 导入使用包

2.1 配置 build.gradle(Project:My_Application2)

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.2"
    }
}

allprojects {
    repositories {
        google()
        //TODO step1
        maven {url 'https://packages.aliyun.com/maven/repository/2138355-release-rE2pVD/'}
        mavenLocal()
        mavenCentral()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2.2 配置build.gradle(Project:My_Application2.app)

dependencies {
	//TODO step1
    implementation 'com.miex.sdk.test:test:1.2'
}

2.3 使用

import com.miex.swust.test.TestClass;

你可能感兴趣的:(Android,maven,android,java)