2016-04-19 4 views
0

Я хочу спросить вас, как создать сервис с этим кодом:Grails 3 службы зависимости Gradle

@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2') 
def parser = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser()) 

def page = parser.parse('http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR1a/eclipse-jee-luna-SR1a-linux-gtk-x86_64.tar.gz') 

println page.depthFirst().find { it.text() == 'North America'} 
println page.depthFirst().find { it.text().contains('North America')} 

Таким образом, идея заключается в создании сервиса с аналогичной функциональностью,.

Я пытаюсь использовать несколько подходов, и они не работают. Вот один из них: 1) заменить @Grab по:

dependencies { 
    compile "org.ccil.cowan.tagsoup:tagsoup:1.2 

в build.gradle

2) добавление в сервис: импорт org.ccil.cowan.tagsoup или импорт орг . .ccil.cowan.tagsoup *

3) добавлен новый репозиторий: mavenCentral()

4) при добавлении строки в project.iml:

<orderEntry type="library" name="Gradle: org.ccil.cowan.tagsoup:tagsoup:1.2" level="project" /> 

Что мне не хватает?

Технической информация: Grails 3.0, Intellij 15, услуги создают путем Грааль создать обслуживание

Я взял значение зависимости от: http://mvnrepository.com/artifact/org.ccil.cowan.tagsoup/tagsoup/1.2 Gradle секции

+0

Вы пытались использовать jcenter()? – innovatism

+0

Привет. Нет, я что-то читал, но информации было недостаточно, и решение было неполным. – Vanko

ответ

0

Вашего первого подход для ссылки зависимостей исправить в проекте gradle/grails.

После этого вы должны иметь возможность загрузить new org.ccil.cowan.tagsoup.Parser() просто отлично, если он находится в одном из хранилищ. Например, он доступен в mavenCentral (который вы добавляете в 3). Импорт помогает уменьшить беспорядок, так что вам не нужно полностью квалифицированное имя класса для использования класса. Вероятно, вы не должны управлять project.iml вручную.

Может быть, только IntelliJ говорит, что есть ошибка, но если вы ее выполнили, это просто отлично работает?

После добавления зависимостей в build.gradle вам нужно сказать IntelliJ синхронизировать определение проекта:

  1. Перейти к Gradle Tool Window (View => Инструмент для Windows => Gradle)
  2. Нажмите на Обновить все Gradle проекты (синий круговые стрелки)

После этого проект Intellij (project.iml) и проект Gradle синхронизированы, и IntelliJ должен знать об этой зависимости.

+1

Да! Это решило проблему. Я полагался только на: ** clean ** и ** компилировать обновления-зависимости **, которые, похоже, этого недостаточно. Спасибо. – Vanko

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