0

我正在尝试将基于 gradle 的 android 构建插件转移到 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>

这应该提供(而不是间接地)所需的类/包,这似乎不起作用。

我还添加了

<repositories>
    <repository>
        <id>android</id>
        <name>android</name>
        <url>https://plugins.gradle.org/m2/</url>
    </repository>
</repositories>

以防万一,没有运气。由于缺少类,该项目仍然无法编译。

知道我缺少什么吗?我对 gradle/maven 场景非常陌生,但我仍然觉得这些工具不在我的水域。

作为参考,这里是该工件的 javadoc 的链接。

谢谢你的帮助

4

2 回答 2

1

'gradle' 工件不包含丢失的包。正如您所提到的,它依赖于至少一个包含该包的工件,但仅在“运行时”范围内。因此,它在编译类路径上对您的项目不可用。

无论如何,在 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,但如果您出于某种原因想要使用旧版本,它可能也可以工作。

于 2017-10-05T13:33:23.220 回答
0

转换 API 是 Google 的 Android Gradle 插件技术。但它被 Gradle 吸收并扩展。所以较新的 Android 插件迁移到 Gradle API,它们不再包含转换引擎,现在是 Gradle 的一部分。如果您使用与旧插件捆绑在一起的 Google 已弃用的转换 API,您将获得引擎。但是你打算对 Gradle 上的所有其他依赖项做什么,我不知道。

于 2019-04-01T23:42:01.327 回答