2013-04-20 1 views
2

Я пытаюсь использовать библиотеку под названием REST Assured с помощью Play Framework. Документация - https://code.google.com/p/rest-assured/wiki/GettingStarted - дает следующий артефакт для Maven -Невозможно загрузить зависимость в проекте Framework для платформы

<dependency> 
     <groupId>com.jayway.restassured</groupId> 
     <artifactId>rest-assured</artifactId> 
     <version>1.8.0</version> 
     <scope>test</scope> 
</dependency> 

Так что я изменил мой файл Build.scala следующим образом включить эту зависимость -

val appDependencies = Seq(
    // Add your project dependencies here, 
    javaCore, 
    javaJdbc, 
    javaEbean, 
    "com.jayway.restassured" % "rest-assured" % "1.8.0" % "test" 
) 

Тогда я пытаюсь использовать эту библиотеку в Java статически импортировать некоторые пакеты, что и документация предписывает мне делать -

import static com.jayway.restassured.RestAssured.*; 
import static com.jayway.restassured.matcher.RestAssuredMatchers.*; 
import static org.hamcrest.Matchers.*; 

Но это приводит к ошибке компиляции, когда я пытаюсь запустить приложение Play -

error: package com.jayway.restassured does not exist

Я знаю, что Play/SBT является получение зависимость, потому что я могу видеть «com.jayway.restassured» каталог в плей-2.1.0/хранилище/каталог кэша. Однако он не отображается в каталоге play-2.1.0/repository/local, я не знаю, имеет ли это значение.

Итак, что случилось, почему я не могу получить доступ к этой библиотеке в приложении Play?

+0

Хммм, импорт, похоже, работает, если я поместил их в файл Java в каталоге my/test. Но нет, если я поместил их в файл Java в каталоге my/app. Я получаю пакет не существует ошибки, если я пытаюсь использовать их в своих файлах в каталоге my/app. Любая идея, почему это происходит? – sonicboom

ответ

3

Если вам необходимо получить доступ к REST Страхователь из не тестового кода, зависимость должна быть определена как:

"com.jayway.restassured" % "rest-assured" % "1.8.0" 

Другими словами, падение "test" декларации. Когда вы присутствуете, вы указываете, что библиотека является зависимой от тестовой областью. В настоящий момент вы говорите, что REST Assured не является зависимостью вашего производственного кода, и его нужно только привязать к коду в тестовом дереве (например, добавлен в тестовый путь).

Я предполагаю, что последующий вопрос заключается в том, почему вы хотите ссылаться на библиотеку тестирования из вашего кода app?

+0

Я тестировал различные вещи, чтобы заставить IntelliJ работать с этой зависимостью, не бросая ошибок. Ваше предложение работает. А также, если я оставляю «тест» в объявлении »и ссылаюсь на тестовую библиотеку из тестового кода, это будет отлично работать с консолью Play. То есть команды« run »,« test »и« compile »работают без проблем Однако я получаю ошибки в IntelliJ в операторах импорта для этой тестовой библиотеки, говоря, что «пакет не может быть разрешен», и я не могу запустить приложение или тесты из IntelliJ. – sonicboom

+0

Похоже, что поддержка IDE для Play ужасна, учитывая, что IntelliJ должен иметь лучшую поддержку, но просто добавление зависимости в тестовом пакете полностью нарушает его. – sonicboom

+0

@sonicboom - Вы пытались добавить 'rest-assured-1.8.0.jar' в свой путь к классу проектов в IntelliJ? Раньше я не использовал IntelliJ, но, предположительно, это «заставило красное уйти». – avik

Смежные вопросы