如何从 Maven 中的 `com.android.build.api.transform` 包导入 类
How to import classes from `com.android.build.api.transform` package in Maven
我正在尝试将 android 的基于 gradle 的构建插件传输到 Maven 构建系统。
到目前为止,除了 android 部分,我都成功了。
看来我的包裹 com.android.build.api.transform
中缺少 类。虽然我用了这段代码
<dependency>
<groupId>com.android.tools.build</groupId>
<artifactId>gradle</artifactId>
<version>2.2.0</version>
<type>jar</type>
</dependency>
它应该(而不是间接地)提供所需的 classes/packages,但似乎这不起作用。
我也加了
<repositories>
<repository>
<id>android</id>
<name>android</name>
<url>https://plugins.gradle.org/m2/</url>
</repository>
</repositories>
以防万一,运气不好。由于缺少 类.
,该项目仍然无法编译
知道我错过了什么吗?我是 gradle/maven 领域的新手,使用这些工具时我仍然感到力不从心。
参考 here is a link 此工件的 javadoc。
感谢您的帮助
'gradle' 工件不包含丢失的包。正如您提到的,它传递地依赖于至少一个包含该包的工件,但仅在范围 'runtime' 内。因此,编译类路径上的项目将无法使用它。
无论如何,在 pom.xml 中显式添加依赖项是正确的做法。在 search.maven.org 上搜索丢失的包表明您可以在 com.android.tools.build:transform-api 和 com.android.tools.build:gradle-api 之间进行选择.锁定 transform-api 工件表明它已被弃用,并鼓励使用 gradle-api 代替。 (最新版本是'2.0.0-deprecated-use-gradle-api')。我下载了gradle-api jar文件,里面确实有缺少的包。所以请尝试将该工件添加到您的 pom.xml 中:
<dependency>
<groupId>com.android.tools.build</groupId>
<artifactId>gradle-api</artifactId>
<version>2.3.0</version>
</dependency>
我没有检查 2.2.0 版,但如果您出于某种原因想要使用旧版本,它可能也可以。
转换 API 是 Google 的 Android Gradle 插件技术。但它被 Gradle 吸收并扩展。所以较新的 Android 插件迁移到 Gradle API,它们不再包含转换引擎,它现在是 Gradle 的一部分。如果您使用与旧插件捆绑在一起的 Google 中已弃用的转换 API,您将获得该引擎。但是你打算如何处理 Gradle 上的所有其他依赖项,我不知道。
我正在尝试将 android 的基于 gradle 的构建插件传输到 Maven 构建系统。 到目前为止,除了 android 部分,我都成功了。
看来我的包裹 com.android.build.api.transform
中缺少 类。虽然我用了这段代码
<dependency>
<groupId>com.android.tools.build</groupId>
<artifactId>gradle</artifactId>
<version>2.2.0</version>
<type>jar</type>
</dependency>
它应该(而不是间接地)提供所需的 classes/packages,但似乎这不起作用。
我也加了
<repositories>
<repository>
<id>android</id>
<name>android</name>
<url>https://plugins.gradle.org/m2/</url>
</repository>
</repositories>
以防万一,运气不好。由于缺少 类.
,该项目仍然无法编译知道我错过了什么吗?我是 gradle/maven 领域的新手,使用这些工具时我仍然感到力不从心。
参考 here is a link 此工件的 javadoc。
感谢您的帮助
'gradle' 工件不包含丢失的包。正如您提到的,它传递地依赖于至少一个包含该包的工件,但仅在范围 'runtime' 内。因此,编译类路径上的项目将无法使用它。
无论如何,在 pom.xml 中显式添加依赖项是正确的做法。在 search.maven.org 上搜索丢失的包表明您可以在 com.android.tools.build:transform-api 和 com.android.tools.build:gradle-api 之间进行选择.锁定 transform-api 工件表明它已被弃用,并鼓励使用 gradle-api 代替。 (最新版本是'2.0.0-deprecated-use-gradle-api')。我下载了gradle-api jar文件,里面确实有缺少的包。所以请尝试将该工件添加到您的 pom.xml 中:
<dependency>
<groupId>com.android.tools.build</groupId>
<artifactId>gradle-api</artifactId>
<version>2.3.0</version>
</dependency>
我没有检查 2.2.0 版,但如果您出于某种原因想要使用旧版本,它可能也可以。
转换 API 是 Google 的 Android Gradle 插件技术。但它被 Gradle 吸收并扩展。所以较新的 Android 插件迁移到 Gradle API,它们不再包含转换引擎,它现在是 Gradle 的一部分。如果您使用与旧插件捆绑在一起的 Google 中已弃用的转换 API,您将获得该引擎。但是你打算如何处理 Gradle 上的所有其他依赖项,我不知道。