android - 离线Android Gradle插件

标签 android android-studio gradle plugins offline

请问有人知道我可以从其他网站下载离线android gradle插件吗?
我以前是从官方的developer.android网站下载的,但它们只有beta版本,而没有插件本身,它一直在给我错误ID为'com.android.application'的错误插件,我运行Android 4.0 btw

最佳答案

Android Gradle插件托管在Google的Maven存储库中:https://maven.google.com/
您可以使用所需的pom.xml Artifact 来制作com.android.tools.build:gradle,并使用mvn dependency:resolve下载插件及其所有依赖项,包括传递性。
Gradle不支持开箱即用的类似操作,有关使用Gradle实现相同任务的方法,请参见answers to this question
我不记得id 'com.android.application'可以通过pluginManagement { ... }中的settings.gradle进行任何修改而工作,类似于以下内容:

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}")
            }
        }
    }
}
如果您使用相同的方式,请不要忘记将本地存储库(无论是mavenLocal()还是其他内容)添加到pluginManagement { repositories { ... }}
对于与Android插件无关的一般情况(还?):
在Gradle插件存储库(https://plugins.gradle.org/m2)中,一个名为com.example.myplugin的插件应具有com.example.myplugin:com.example.myplugin.gradle.plugin:...的相应 Artifact 。还应在本地镜像此 Artifact ,以便id "com.example.myplugin"起作用。
作为引用,这是我用来下载AGP 4.0.0所需的所有 Artifact 的完整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之后, Artifact 将驻留在~/.m2/repository中,因此剩下的就是将mavenLocal()添加到pluginManagement { repositories { ... } }(或对于旧式应用插件使用buildscript { repositories { ... } })。

关于android - 离线Android Gradle插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63569938/

相关文章:

Android Studio : Failed Gradle execution. 原因:管道损坏

intellij-idea - 在 intellij 中为 gradle task/runco​​nfig 设置类路径

android - 如何通过谷歌地图API从JSON响应中获取纬度/经度

android wear : only picture, 无标题第二页

android - 缩进的 TabLayout

android - 任务 ':app:compileDebugJavaWithJavac' 执行失败 Android Studio 3.1 更新

Cordova buildconfig.json keystore 路径

java - 由于在单元测试中捕获异常,Gradle 在三叶草分析期间构建失败

按下 "Back"或 "Home"时 Android App 为 FC

android - 用 Listfragment 替换 fragment 时出错