如何在Maven中从`com.android.build.api.transform`包导入类

如何在Maven中从`com.android.build.api.transform`包导入类,maven,android-gradle-plugin,android-build,gradle-plugin,maven-dependency,Maven,Android Gradle Plugin,Android Build,Gradle Plugin,Maven Dependency,我正在尝试将一个基于gradle的android构建插件转移到maven构建系统。 到目前为止,除了安卓部分,我还是成功的 似乎我缺少包com.android.build.api.transform中的类。虽然我使用了这个代码 <dependency> <groupId>com.android.tools.build</groupId> <artifactId>gradle</artifactId>

我正在尝试将一个基于gradle的android构建插件转移到maven构建系统。 到目前为止,除了安卓部分,我还是成功的

似乎我缺少包
com.android.build.api.transform
中的类。虽然我使用了这个代码

    <dependency>
        <groupId>com.android.tools.build</groupId>
        <artifactId>gradle</artifactId>
        <version>2.2.0</version>
        <type>jar</type>
    </dependency>

com.android.tools.build
到这个工件的javadoc


感谢您的帮助

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

无论如何,在pom.xml中显式添加依赖项是正确的做法。对上缺少的包的搜索显示,您可以在com.android.tools.build:transform api和com.android.tools.build:gradle api之间进行选择。锁定TransformAPI工件表明它已被弃用,并鼓励改用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>

com.android.tools.build
格雷德尔api
2.3.0

我没有检查版本2.2.0,但是如果您出于某种原因想使用旧版本,它可能也会工作。

转换API是谷歌的Android Gradle插件技术。但它被格拉德尔吸收并扩大了。因此,较新的Android插件迁移到了GradleAPI,它们不再包括转换引擎,而转换引擎现在是Gradle的一部分。如果您使用Google提供的与旧插件捆绑在一起的已弃用的TransformAPI,您将获得该引擎。但是你打算对Gradle的所有其他依赖做什么,我不知道

确实如此。不过,它似乎缺少一些依赖项。看起来实际的功能隐藏得很好
<dependency>
    <groupId>com.android.tools.build</groupId>
    <artifactId>gradle-api</artifactId>
    <version>2.3.0</version>
</dependency>