我在github上克隆了亚马逊的ASK java存储库,并在上面运行了mvn package,它生成了以下.jars:
ask-sdk-core-2.3.4.jar
ask-sdk-apache-client-2.3.4.jar
ask-sdk-dynamodb-persistence-adapter-2.3.4.jar
ask-sdk-lambda-support-2.3.4.jar
ask-sdk-servlet-support-2.3.4.jar
ask-sdk-2.3.4.jar我注意到,在尝试为https://developer.amazon.com/docs/custom-skills上的类进行某些导入时,例如
import com.amazon.speech.speechlet.servlet.SpeechServlet;
我收到一条消息,指出无法解析com.amazon.speech,指出该文件不存在。但是,在进一步研究之后,我注意到有一个SkillServlet类似乎基本上取代了SpeechServlet类,因为它能够做SpeechServlet所能做的一切,所以我认为开发人员站点还没有更新来反映这些更改。
然后我注意到,存储库中的类RequestHandler有一个返回Optional< Response >类型的对象的方法。当我尝试使用以下导入导入Response时:
import com.amazon.ask.model.Response;
我收到一条错误消息,指出
The type com.amazon.ask.model.Response cannot be resolved. It is indirectly referenced from required .class files这表明类定义不存在于项目的类路径中,尽管已经包含了上面的所有.jars。我搜索了一下,但找不到模型目录。我的maven构建失败了吗?我是否遗漏了任何.jars?我使用的是Eclipse EE IDE,我知道它很容易出错,但我已经清理了我的项目,并重新启动了IDE,但都无济于事。
更新:我注意到ASK - SDK - pom.xml -2.3.4目录中的核心文件包含ASK SDK Model的依赖项,但它似乎没有获得依赖项。我还注意到,尽管ask-sdk-2.3.4也应该包含ask-sdk-core-2.3.4所包含的所有内容,因为后者在前者中被列为依赖项,但我必须单独包含ask-sdk-core的jar文件,否则Eclipse将无法识别某些类。我认为这意味着maven失败了,所以我直接从mvnrepository.com下载了jar。你知道为什么会发生这种事吗?
发布于 2018-07-11 14:59:40
如果您使用ask-sdk-2.3.4.jar,那么它应该包含您需要的所有依赖项,就像您在更新格式回复信息中注意到的那样。当你在Github库中查看Hello World示例时,pom.xml只包含ask-sdk-2.3.4.jar,而不包含ask-sdk-2.3.4.jar中的其他依赖项。https://github.com/alexa/alexa-skills-kit-sdk-for-java/blob/2.0.x/samples/helloworld/pom.xml
对于您在Response上的错误消息,这是因为您缺少可以从maven central找到的ask-sdk-model jar。http://central.maven.org/maven2/com/amazon/alexa/ask-sdk-model/
我建议您使用maven和pom.xml,这样您就不必单独下载jars。
https://stackoverflow.com/questions/51051575
复制相似问题