com.google.appengine:appengine-api-1.0-sdk应该与gradle-appengine-plugin一起使用吗?

时间:2015-04-09 05:16:17

标签: google-app-engine gradle

我正在尝试将gradle appengine plugin用于我的项目,但SDK中的软件包尚未解析。

我在网站上看到很多关于maven存储库的引用:com.google.appengine:appengine-api-1.0-sdk。官方文档没有提到这一点,我想知道我是否应该使用它与插件。

指定依赖项:

compile "com.google.appengine:appengine-api-1.0-sdk:${appengineVersion}"

使用插件的appengineDownloadSdk = true或手动下载并设置appengine.sdk.root = ...?

的替代方法

如果我不包含该依赖项(但提供SDK并设置appengine.sdk.root或使用appengineDownloadSd / appengineSdk),我在编译时会看到此错误

error: package com.google.appengine.api.datastore does not exist

如果我确实包含了这个依赖项,那么compileJava任务会给出:

The import com.google.appengine cannot be resolved

并提供对该行的引用:

import com.google.appengine.api.datastore.DatastoreService;

来自我的代码。

在第二种情况下,IntelliJ能够解析导入,并且可以准确地向我显示SDK文件的位置,但gradle仍然无法找到它。

1 个答案:

答案 0 :(得分:0)

使用gradle时,必须显式定义所有编译依赖项。 appengineSdk依赖项仅用于工具目的,它允许插件调用sdk来执行“update”和“run”之类的操作。它不会为您的项目添加任何依赖项

com.google.appengine:appengine-api-1.0-sdk:${appengineVersion}是一个依赖项,允许您使用appengine API(如数据存储区),因此您需要它来导入DatastoreService,因此您绝对应该将其作为编译依赖项包含在内。

为什么ide选择它并且gradle不是可能是配置问题。我尝试重现它,但添加依赖项和引用DatastoreService在IDE和命令行中没有问题。你的配置有什么关系可以在这里吗?