如何让 gradle 发布到本地 meven 存储库

How to get gradle to publish to a local meven repo

提问人:Andres 提问时间:11/18/2023 更新时间:11/19/2023 访问量:31

问:

我使用 Android Studio 创建了一个简单的示例库。

我的目标是在构建模块时,它会将其发布到本地文件系统上的 maven 存储库中,以供另一个进程使用。

我按照 https://developer.android.com/build/publish-library/upload-library 的说明,得到了以下build.gradle:

plugins {
    id 'com.android.library'
    id 'maven-publish'
}

android {
    namespace 'com.example.mylibbrary'
    compileSdk 33

    defaultConfig {
        minSdk 26

        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
    }

    publishing {
        singleVariant("debug")
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

publishing {
    publications {
        debug(MavenPublication) {
            groupId = 'com.example'
            artifactId = 'mylibbrary'
            version = "1.0"

            afterEvaluate {
                from components.debug
            }
        }
    }
    repositories {
        maven {
            name = 'mynewrepo'
            url = "file://${project.buildDir}/repo"
        }
    }
}

但是,尽管 mylibbrary-debug.aar 最终位于 MyLibrary\mylibbrary\build\outputs\aar 中,但此 gradle 文件的发布任务似乎在构建模块时从未实际运行过。

如何将其发布到 MyLibrary\mylibbrary\build\repo\mynewrepo 中的存储库?

Android Maven Gradle build.gradle

评论

0赞 Rob 11/18/2023
您是否运行了发布(如果我没记错的话,该任务称为发布)任务?
0赞 Andres 11/18/2023
我添加了一个“assembleDebugAndroidTest.finalizedBy publishDebugPublicationToMynewrepoRepository”,它没有问题地发布。不知道这是要求的一部分,因为它在文档中没有提到。
0赞 Andres 11/18/2023
@Rob 如果你想添加这个作为答案,我会接受的。
0赞 Rob 11/19/2023
好的)我会添加它

答:

1赞 Rob 11/19/2023 #1

尝试运行“发布”任务

添加“assembleDebugAndroidTest.finalizedBy publishDebugPublicationToMynewrepoRepository”