0

我想将一个基于gradle的构建插件移植到一个maven构建系统中。 到目前为止,除了android部分,我成功了。如何从Maven中的`com.android.build.api.transform`包中导入类

看来我从包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。

感谢您的帮助

回答

1

的“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版本,但是如果你因为某些原因要使用的旧版本,它可能会工作了。

+0

确实在那里。不过,它似乎有一些缺失的依赖关系。它看起来好像隐藏了实际的功能 – Panayotis