Gradle Maven插件“安装”任务不适用于Android库项目

2022-09-01 08:18:38

我想将Android库项目安装到本地maven存储库。以下是 build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'
apply plugin: 'maven'

version = "1.0.0-SNAPSHOT"
group = "com.example"

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 18
    }
}

当我运行时:

gradle install -i

它卡在这里:

Executing task ':project:installTest' due to:
  Task has not declared any outputs.
Starting process 'command 'd:\android-sdk-windows\platform-tools\adb.exe''. Working directory: D:\Projects\java\....... Command: d:\android-sdk-windows\platform-tools\adb.exe install -r D:\Projects\java\.......\build\apk\project.apk
An attempt to initialize for well behaving parent process finished.
Successfully started process 'command 'd:\android-sdk-windows\platform-tools\adb.exe''
> Building > :project:installTest

因此,我注意到的第一件事是,由于某种奇怪的原因,它正试图将其作为APK部署在设备上。

是我做错了什么,还是只是Android库插件与maven插件不兼容?


答案 1

编辑:请参阅github页面(https://github.com/dcendents/android-maven-gradle-plugin)以获取最新说明,并找到要使用的正确版本。原始说明不再适合最新的 gradle 版本。

原文:

我已经修改了maven插件,使其与Android库项目兼容。在github上查看该项目:https://github.com/dcendents/android-maven-gradle-plugin

配置您的安卓库项目以使用它:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.github.dcendents:android-maven-plugin:1.0'
    }
}

apply plugin: 'android-library'
apply plugin: 'android-maven'

然后,您应该能够使用安装任务将 aar 安装到本地 maven 存储库中。

希望这有帮助,如果你发现插件的问题,请在github上告诉我,我会修复它。


答案 2

详细阐述了CyclingSir的答案,我建议添加一个单独的“installArchives”任务。这还应该负责拾取您的自定义工件(例如源)。

apply plugin: 'maven'

task installArchives(type: Upload) {
  description "Installs the artifacts to the local Maven repository."
  configuration = configurations['archives']
  repositories {
    mavenDeployer {
      repository url: repositories.mavenLocal().url
    }
  }
}

请注意,使用Gradle Android插件v0.5.5,仍然会尝试在设备上安装某些内容。gradle install


推荐