Работает ли Grails + Maven + JCL совместно? - PullRequest
0 голосов
/ 06 июня 2011

Я работаю с IntelliJ IDEA 10.0.1 и Grails 1.3.7. У меня есть Mavenized Grails проект, который зависит от многих библиотек журналов.

Вот проблема:
Я должен использовать JCL в качестве каркаса журналирования, но по умолчанию Grails работает с SLF4J и имеет некоторые зависимости по умолчанию, такие как jcl-over-slf4j , которые наследуются каждым проектом grails. Прежде всего, я исключил каждую jcl-over-slf4j транзитивную зависимость в моем файле pom проекта и проверил с помощью mvn зависимость: дерево , что мой pom очищен от любых библиотек мостов SLF4J.

Но тем не менее jcl-over-slf4j все еще загружается в мое локальное хранилище Maven, когда я пытаюсь запустить приложение Grails. Это, очевидно, приводит к ошибке StackOverflowError во время выполнения, так как jcl-over-slf4j и slf4j-jcl находятся в пути к классам.

Так из-за какого объявления все еще загружается зависимость jcl-over-slf4j ?

Поскольку мой pom чист, очевидным выводом будет то, что Grails сам зависит от этих библиотек. Как упоминалось ранее, у Grails есть некоторые зависимости по умолчанию, от которых зависит каждый проект Grails.

Я знаю, что могу исключить унаследованные зависимости в файле BuildConfig.groovy, и если я запущу отчет о зависимостях grails Я также вижу, что эти зависимости больше не перечислены.

grails.project.dependency.resolution = { 
    inherits("global") {
      excludes "jcl-over-slf4j", "jul-to-slf4j", "slf4j-log4j12"
    }
}

Но даже тогда зависимость jcl-over-slf4j все еще загружается в мой репозиторий, когда я запускаю приложение Grails! Я что-то пропустил? Есть ли другой способ исключить унаследованные зависимости grails при использовании проекта mavenized grails?

Любая помощь будет оценена

Спасибо! Slash

1 Ответ

0 голосов
/ 07 июня 2011

Хорошо, я думаю, что получил ответ сейчас.

Проблема в том, что внутри моего pom определен maven-grails-plugin (который является обязательным, когда вы используете maven + grails)Файл зависит от jcl-over-slf4j и, следовательно, загружается при запуске приложения через maven.В моей текущей версии maven (2.2.1) невозможно исключить зависимость из плагина.Существует также проблема джджира, касающаяся этой проблемы. Не могу исключить зависимость из плагина

Как только я удаляю maven-grails-plugin , зависимость больше не загружается, но как недостаток ябольше не могу запускать приложение через maven ..

Извлеченные уроки: не используйте Maven + Grails + JCL вместе.

Обратите внимание, что с mvn зависимость: дерево перечислены только зависимости проекта, но перечислены зависимости плагина НЕ .

Надеюсь, это поможет!С уважением Слэш

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...