Хотя я уверен, что вы, вероятно, могли бы написать плагин Eclipse, чтобы делать то, что вам нужно, это звучит как большая работа, которую вам не нужно делать.
Я думаю, что плагин, который вы описываете, по сутипытаясь достичь двух вещей:
- Уменьшите общий размер этой библиотеки, таким образом, уменьшив общий размер вашего приложения.
- Возможность не требовать ссылки на внешнюю библиотеку
Идея существенного сокращения внешней библиотеки jar только до тех основных функций, которые вам необходимы, - это, по сути, одна из ролей, для которой используется запутывание.Для Java доступно множество инструментов обфускации с открытым исходным кодом, наиболее популярным из которых является Proguard .Proguard - это настраиваемый и полезный инструмент, который можно использовать для удаления сжатого кода, его оптимизации и затем обфускации.
Сокращение текущего кода из инструмента запутывания позволит выполнить первую цель, которую, я думаю, вы пытаетесь достичь.
Вдобавок к этому инструменты запутывания дадут намного лучшие результаты, чем методика, описанная плагином.Смотрите некоторые результаты Proguard здесь .
Вторая цель, которую вы пытаетесь достичь, кажется немного странной.Также нет ничего плохого в использовании внешних библиотек.С точки зрения разработки вы хотите знать, каковы зависимости вашего приложения.
Зависимости от библиотек в больших проектах должны быть оценены (для таких вещей, как риск и т. Д.) И, в конечном счете, должны быть управляемы.Идея редактирования библиотеки путем удаления ненужных частей может поставить вас под угрозу взлома лицензий.Также было бы абсолютным кошмаром, если оригинальная библиотека потеряна, и все, что существовало, было созданными классами.
Было бы намного проще указать, что зависит от вашего приложения, и использовать инструмент зависимости от библиотеки. Apache Ivy - это инструмент, который делает это и, в конечном счете, помогает другим, с кем вы сотрудничаете, показывая, от чего зависит ваше приложение, и быстро предоставляя им простые способы получения этих библиотек.
Эти типы инструментов, как правило, используются в крупных проектах, где существует множество зависимостей и конкретных версий, которые необходимо использовать.Для небольших проектов вы в большинстве случаев обнаружите, что они требуют только одну или две библиотеки в проектах readme или инструкциях по сборке.