Почему отсутствуют зависимости от набора Alexa Skills Kit? - PullRequest
0 голосов
/ 27 июня 2018

Я клонировал Java-хранилище ASK на github и запустил 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 безрезультатно.

Обновление: Я заметил, что файл pom.xml в каталоге ask-sdk-core-2.3.4 содержал зависимость для модели ASK SDK, но, похоже, он не получает зависимость. Я также заметил, что хотя ask-sdk-2.3.4 должен также включать все, что делает ask-sdk-core-2.3.4, так как последний указан как зависимость в первом, я должен включить jar ask-sdk-core файл отдельно или Eclipse не может распознавать определенные классы. Я думаю, что это означает, что Maven потерпел неудачу, поэтому я просто скачал банку прямо с mvnrepository.com. Есть идеи, почему это могло произойти?

1 Ответ

0 голосов
/ 11 июля 2018

Если вы используете ask-sdk-2.3.4.jar, то оно должно включать все зависимости, которые вам нужны, как вы заметили в своем обновлении. Когда вы смотрите на пример Hello World в их репозитории Github, 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, это потому, что вам не хватает jar ask-sdk-model, который вы можете найти в maven central. http://central.maven.org/maven2/com/amazon/alexa/ask-sdk-model/

Я бы предложил использовать maven и pom.xml, чтобы вам не приходилось загружать jar-файлы по отдельности.

...