离线 Android Gradle 插件

Offline Android Gradle Plugin

请问有人知道我可以从哪个网站下载离线 android gradle 插件吗? 我以前从官方 developer.android 网站下载过它,但他们只有测试版,没有插件本身,它一直给我错误插件 ID 'com.android.application' 未找到,我 运行 Android 4.0 顺便说一句

Android Gradle 插件托管在 Google 的 Maven 存储库:https://maven.google.com/ 您可以使用所需的 com.android.tools.build:gradle 工件制作 pom.xml 并使用 mvn dependency:resolve 下载插件及其所有依赖项,包括可传递的依赖项。 Gradle 不支持开箱即用的类似操作,请参阅 answers to this question 以了解使用 Gradle 实现相同任务的方法。

我不记得 id 'com.android.application'settings.gradle 中通过 pluginManagement { ... } 进行任何修改,类似于以下内容:

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()

        mavenLocal() // one should add this for artifacts mirrored locally
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id.startsWith("com.android.")) {
                useModule("com.android.tools.build:gradle:${requested.version}")
            }
        }
    }
}

如果您使用相同的方式,请不要忘记将您的本地存储库添加到 pluginManagement { repositories { ... }}

,无论是 mavenLocal() 还是其他任何东西

对于与 Android 插件无关的一般情况(还?):

名为 com.example.myplugin 的插件应该在 Gradle 插件存储库 (https://plugins.gradle.org/m2) 中具有对应的 com.example.myplugin:com.example.myplugin.gradle.plugin:... 工件。为了 id "com.example.myplugin" 正常工作,还应该在本地镜像此工件。

作为参考,这是我用来下载 AGP 4.0.0 所需的所有工件的完整 pom.xml

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
  <dependencies>
    <dependency>
      <groupId>com.android.tools.build</groupId>
      <artifactId>gradle</artifactId>
      <version>3.6.3</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib-jdk8</artifactId>
      <version>1.3.61</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-reflect</artifactId>
      <version>1.3.61</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib</artifactId>
      <version>1.3.61</version>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.2</version>
    </dependency>
    <!-- addendum for 4.0.0 -->
    <dependency>
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_annotations</artifactId>
      <version>2.3.2</version>
    </dependency>
  </dependencies>
  <repositories>
    <repository>
      <id>goog</id>
      <url>https://dl.google.com/android/maven2</url>
    </repository>
    <repository>
      <id>jcr</id>
      <url>https://jcenter.bintray.com</url>
    </repository>
  </repositories>
</project>

在 运行 mvn dependency:resolve 工件将驻留在 ~/.m2/repository 之后,所以剩下的就是将 mavenLocal() 添加到 pluginManagement { repositories { ... } }(或 buildscript { repositories { ... } } 旧式应用插件)。