Как исключить банки при создании Runnable Jar с помощью задачи DistZip плагина приложения Gradle

Когда мы используем подключаемый модуль приложения Gradle для создания исполняемого jar-файла для моего проекта, задача distZip добавляет все jar-файлы, не относящиеся к папке lib.

Есть ли способ, которым я могу исключить банки, которые не требуются в zip-файле дистрибутива, созданном Gradle.


person satish john    schedule 09.11.2012    source источник
comment
Когда вы говорите, что не имеет значения, что именно вы имеете в виду? Предоставьте блок dependencies вашего скрипта сборки и аннотируйте те, которые вы считаете неуместными.   -  person Benjamin Muschko    schedule 09.11.2012
comment
В зависимостях я добавляю compile 'org.apache.solr:solr-solrj:3.6.0'. Когда я делаю distZip, он добавляет jar-файлы commons-httpclient-3.1, commons-logging-1.0.4, slf4j-api-1.6.1, solr-solrj-3.6.0, wstx-asl-3.2.7 в папку lib. Однако мне нужно, чтобы в папке lib присутствовал только solr jar, а не другие, когда я делаю distZip   -  person satish john    schedule 09.11.2012
comment
Я знаю, что клиентская библиотека SolrJ использует HTTPClient под прикрытием. Это считается транзитивной зависимостью и требуется для правильной работы во время выполнения. Поэтому он включен в дистрибутив.   -  person Benjamin Muschko    schedule 09.11.2012
comment
Есть ли способ исключить транзитивную зависимость   -  person satish john    schedule 09.11.2012
comment
Я не уверен, почему вы хотите этого в своем случае, за исключением того, что у вас будет конфликт версий, но да, вы можете это сделать. В руководстве пользователя Gradle описано, как это сделать.   -  person Benjamin Muschko    schedule 09.11.2012
comment
Спасибо Бенджамин за решение. Мне это нужно, так как этот jar настроен для использования http-клиента из других домашних библиотек evn. Следовательно, теперь я использовал transive = false для компиляции solr.   -  person satish john    schedule 12.11.2012


Ответы (1)


Чтобы исключить транзитивные зависимости jar в dist добавлены.

compile ("org.apache.solr:solr-solrj:3.6.0"){
            transitive = false
}   
person satish john    schedule 12.11.2012