2017-02-19 23 views
0

Я создаю приложение, которое создает индексы Lucence на нескольких известных форматах документов (.docx, .odt, .txt и т. Д.).Gradle, Tika - Исключить некоторые пакеты зависимостей, делая «жирную банку» слишком толстой

Тика идеально подходит для извлечения текста, но он, по-видимому, является виновником создания моего толстого банного шарнира до 62 МБ.

Для того, чтобы жир банки я делаю это в моем build.gradle:

buildscript { 
    repositories { jcenter() } 
    dependencies { // fatjar 
     classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4' } 
} 
apply plugin: 'com.github.johnrengelman.shadow' 
shadowJar { 
    baseName = project.name 
    classifier = null 
    version = project.version 
} 

task copyJarToBin(type: Copy) { 
    from shadowJar 
    into "D:/My Documents/Software projects/Operative/" + project.name 
} 

Когда я gradle dependencies, Тик, действительно, кажется, есть сотни ... большинство из них, очевидно, я не необходимость.

Есть ли известный метод Gradle для исключения/фильтрации определенных зависимостей?

Специфическая для Тика: если кто-нибудь знает, как определить, какие зависимостями обрабатывать какие типы файлов, которые были бы очень полезны тоже ...

+0

Возможно использование варианта Tika 2.x? Модули анализатора в 2.x довольно немного более модульные. – Gagravarr

+0

Спасибо ... нет упоминания о Tika 2, которое я могу видеть на сайте: последняя стабильная версия с октября прошлого года - 1,14. Вы, кажется, инсайдер, хотя: можете ли вы дать мне ссылку или рассказать мне, что с этим происходит? –

+0

Пока нет официального релиза Tika 2.x, так как еще есть некоторые другие изменения API-интерфейса. Однако часть рефакторинга парсера завершена. См. Https://wiki.apache.org/tika/Tika2_0RoadMap для получения дополнительной информации и ссылок, чтобы получить исходный код 2.x, чтобы создать себя. – Gagravarr

ответ

1

Взгляните на Gradle dependency management. Вы не можете исключить зависимости от модуля, группы или оба:

compile('library:with-a-lot-of-deps:1.0') { 
    exclude module: 'weird-extension' 
    exclude group: 'microsoft-extensions' 
    exclude group: 'adobe-extensions', module: 'pdf-extension' 
} 

И вы также можете удалить зависимости от всех конфигураций:

configurations { 
    all*.exclude group: 'all-the-unneeded-extensions' 
} 

Нет представления о Тика, но это, вероятно, будет отдельный вопрос, так или иначе. Может быть хорошей идеей прочитать на документах Tika и проверить каталог META-INF в Jars.

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

  • Нет связанных вопросов^_^