2012-06-08 2 views
2

Я использую Grails 2.0.3. В BuildConfig.groovy у меня есть следующее исключение.Исключение Grails не работает на более глубоком уровне

dependencies { 
    runtime ('com.mycompany.apps.notification:client:1.2.1') { 
     excludes([ group: 'xom', name: 'xom' ]) 
    } 
} 

Мое дерево зависимостей выглядит, как показано ниже. (Создано дерево с помощью Maven2)

[INFO] ------------------------------------------------------------------------ 
[INFO] [dependency:tree {execution: default-cli}] 
[INFO] com.mycompany.apps.notification:notifytest:jar:0.0.1-SNAPSHOT 
[INFO] \- com.mycompany.apps.notification:client:jar:1.2.1:compile 
[INFO] \- com.mycompany.apps.notification:api:jar:1.2.1:compile 
[INFO]  \- com.mycompany.framework:platformservice.shared:jar:3.22.0:compile 
[INFO]   \- com.mycompany.framework:saml.res:jar:1.0.0:compile 
[INFO]    \- xom:xom:jar:1.1:compile 
[INFO]    +- xerces:xmlParserAPIs:jar:2.6.2:compile 
[INFO]    \- jaxen:jaxen:jar:1.1-beta-8:compile 
[INFO]     \- (xerces:xmlParserAPIs:jar:2.6.2:compile - omitted for duplicate) 
[INFO] ------------------------------------------------------------------------ 

Исключение работает отлично до 4 уровня в дереве, но исключение игнорируется ниже уровня. В моем примере исключение работает до «com.mycompany.framework: platformervice.shared», но не работает на «com.mycompany.framework: saml.res» и ниже.

Я пробовал то же самое, используя maven 2.2, и исключение работает на всех уровнях дерева выше. Мне не хватает какой-либо конфигурации в grails для исключения для работы на более глубоких уровнях? Или это известная проблема?

+0

Как выглядят зависимости grails? – chrislovecnm

ответ

0

У меня были подобные проблемы, подобные этому ... возбуждает меня бонкеров. Есть несколько проблем с jira, чтобы исправить проблемы зависимостей в grails и, надеюсь, они будут рассмотрены в 2.3. В любом случае, чтобы решить вашу проблему, я обычно исключаю более высокую зависимость, затем включаю ее напрямую, а затем исключаю элемент, который я на самом деле пытаюсь исключить из него. Раздражает, но это работает.

так что-то вроде этого?

runtime ('com.mycompany.apps.notification:client:1.2.1') { 
    excludes([ group: 'com.mycompany.framework', name: 'saml' ]) 
} 


runtime ('com.mycompany.framework:saml.res:1.0.0') { 
    excludes([ group: 'xom', name: 'xom' ]) 
} 

Также иногда зависимость вещи вообще получает выпивший и я нахожу Grails --refresh-зависимостей компиляции может сделать трюк. Или, что еще хуже, удалите весь каталог .grails.

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