我正在尝试将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仍然无法找到它。
答案 0 :(得分:0)
使用gradle时,必须显式定义所有编译依赖项。 appengineSdk
依赖项仅用于工具目的,它允许插件调用sdk来执行“update”和“run”之类的操作。它不会为您的项目添加任何依赖项
com.google.appengine:appengine-api-1.0-sdk:${appengineVersion}
是一个依赖项,允许您使用appengine API(如数据存储区),因此您需要它来导入DatastoreService
,因此您绝对应该将其作为编译依赖项包含在内。
为什么ide选择它并且gradle不是可能是配置问题。我尝试重现它,但添加依赖项和引用DatastoreService在IDE和命令行中没有问题。你的配置有什么关系可以在这里吗?