2013-11-27 5 views
7

Grails имеет BouncyCastle: bcprov-jdk14: 138 как глобальная зависимостьКак исключить Grails глобальную DEPENDENCY

+--- org.grails:grails-docs:2.3.3 
| \--- org.xhtmlrenderer:core-renderer:R8 
| \--- org.yaml:snakeyaml:1.8 
| \--- org.grails:grails-gdoc-engine:1.0.1 
| \--- com.lowagie:itext:2.0.8 
|   \--- bouncycastle:bcmail-jdk14:138 
|   \--- bouncycastle:bcprov-jdk14:138 
| \--- commons-lang:commons-lang:2.6 

Но мое приложение нужно bcprov-jdk15on-149. Когда я добавил его в зависимости он не выбросит старую версию

dependencies { 
    build 'org.bouncycastle:bcpg-jdk15on:1.49' 
    build 'org.bouncycastle:bcprov-jdk15on:1.49' 
} 

Я пробовал много вариантов, чтобы исключить его, но никто не работает

inherits("global") { 
    //excludes 'grails-docs' 

    excludes 'org.bouncycastle:bcmail-jdk14:138' 
    excludes 'bouncycastle:bcmail-jdk14:138' 
    excludes 'bcmail-jdk14-138.jar' 
    excludes 'bcmail-jdk14' 
    excludes 'bcmail' 

    excludes 'bouncycastle:bcprov-jdk14:jar:138' 
    excludes 'org.bouncycastle:bcprov-jdk14:138' 
    excludes 'bouncycastle:bcprov-jdk14:138' 
    excludes 'bcprov-jdk14-138.jar' 
    excludes 'bcprov-jdk14' 
    excludes 'bcprov' 
    excludes 'bouncycastle' 
} 

Единственным способом сделали работу - исключить все 'grail-docs'.

Как исключить только старый bcprov-jdk14: 138?

Или как это сделать новый (bcprov-jdk15on-149) выдворить старый (bcprov-jdk14: 138)?

+0

Попробуйте 'compile 'org.bouncycastle: bcpg-jdk15on: 1.49''. Следует использовать более новую версию. –

+0

Спасибо за ответ, но я уже пробовал, и он не сработал. Кажется, что проблема в резонере зависимостей «maven» (который используется Grails с 2.3), потому что с «плющом» резольвер все работает нормально. –

+0

Если вы измените в BuildConfig.groovy, чтобы использовать Ivy, он работает? Тогда я думаю, вы должны поднять Джиру. –

ответ

9

Казалось бы, о котором сообщает об ошибке >>http://jira.grails.org/browse/GRAILS-10640

Я нашел обходной путь перекрывая com.logwagie.itext зависимости.

dependencies { 
    // add this line 
    build("com.lowagie:itext:2.1.7") { excludes "bouncycastle:bcprov-jdk14:138", "org.bouncycastle:bcprov-jdk14:1.38" } 
} 

Надеюсь, это поможет вам.

+1

Как это исключение может быть эффективным в плагине, который будет использоваться другими? – Omid