我正在尝试将基于gradle的构建插件for 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场景很陌生,我仍然觉得这些工具离开了我的水域。
参考here is a link参考此工件的javadoc。
感谢您的帮助
答案 0 :(得分:1)
&#39; gradle&#39;工件不包含缺少的包。正如您所提到的,它至少依赖于包含该包的一个工件,但仅限于范围&#39;运行时&#39;。因此,它在编译类路径上不可用于您的项目。
无论如何,在pom.xml中显式添加依赖项是正确的。在search.maven.org上搜索缺失的包表明您可以在com.android.tools.build:transform-api和com.android.tools.build:gradle-api之间进行选择。锁定transform-api工件会发现它已被弃用并鼓励使用gradle-api。 (最新版本是&#39; 2.0.0-deprecated-use-gradle-api&#39;)。我下载了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版本,但如果由于某种原因想要使用旧版本,它可能也会有效。
答案 1 :(得分:0)
transform API是Google的Android Gradle插件技术。但是它被Gradle吸收并扩展了。因此,较新的Android插件迁移到了Gradle API,并且不再包含转换引擎,该引擎现在是Gradle的一部分。如果您使用与旧插件捆绑在一起的Google弃用的transform API,则会获得引擎。但是您打算对Gradle上的所有其他依赖项做什么呢,我不知道。