Включение jar в проект. И включая проект Android Library

Я хочу включить в свой проект библиотеку jar, но библиотека действительно большая.

Я не использую все классы из этой библиотеки, поэтому, когда я компилирую свой проект, будет ли все содержимое jar помещено в скомпилированный проект или только файлы (классы и т. д.), которые я использую?

И тот же вопрос о проекте библиотеки Android: если я включу проект библиотеки Android в свой проект и не использую все ресурсы lib, поместит ли компилятор все ресурсы проекта Lib в мой проект или только ресурсы, которые я использовал ?


person Artem Zinnatullin    schedule 09.11.2012    source источник
comment
Проблема в том, что вы не можете просто включить классы .jar, которые вы используете, потому что он, вероятно, будет использовать какой-то другой класс из того же .jar, который вам не нужен. Android — это не только один класс или один пакет, почти все идет вместе.   -  person flawyte    schedule 10.11.2012


Ответы (2)


прошу прощения, если я не понимаю вопроса, но, возможно, вы ищете это:

Выборочное включение зависимостей в JAR

так вот плагин

https://github.com/nuttycom/sbt-proguard-plugin

sbt proguard похоже урежет ненужные классы, так что ваш проект не будет "тяжелым"

person David T.    schedule 09.11.2012
comment
совершенно правильный и применимый ответ. очень жаль, что у OP не хватило приличия, чтобы проголосовать за ответы или выбрать один - person kwikness; 13.11.2012
comment
@kwikness спасибо за голосование! да, я думаю, что ОП, вероятно, не знает, как голосовать или соглашаться, видя, что у него ограниченная репутация в SO. - person David T.; 13.11.2012

Хотя вы не можете напрямую использовать классы в JAR, вы можете использовать их косвенно. Поэтому удалять эти классы из jar-файла, вероятно, было бы небезопасно, если только вы не уверены на 100 %, что они не косвенно используются классами, которые вы используете.

person kwikness    schedule 09.11.2012
comment
Но я думаю, что компилятор всегда знает, какие классы используются, а какие нет. - person Artem Zinnatullin; 10.11.2012