Я пытаюсь сделать сложную сборку с Maven Shade и Proguard.Дело в том, что я хочу только запутать свой код и некоторые связанные библиотеки (объявленные в pom как зависимости), в pom.xml
присутствует больше библиотек, но я не хочу обрабатывать их с помощью Proguard.
Мой текущий подход заключается в следующем:
- Используйте
maven shade
, чтобы сгенерировать Jar с зависимостями, которые я хочу скрыть вместе с моим кодом.(execution binded to package phase
) - Используйте Proguard, чтобы запутать код.(
execution binded to package phase
) - Добавьте недостающие зависимости (Storm и т. Д.) В финальную версию Jar посредством второго выполнения
maven shade
.(execution binded to verify phase
)
Дело в том, что на третьем шаге (второй shade
) я получаю в окончательном Jar как обфусцированные пакеты, так и необфусцированные.
Более того, я также попытался переименовать через shade
пакеты на первом шаге, но то же самое происходит, необъяснимый код вместе с обфусцированными переименованными жизнями в толстом Jar.
Еще одна вещь, которую я попробовал, - исключить несобранные пакеты во втором shade
, но тогда я не получаю никакого кода с предыдущих шагов, только внешние библиотеки.
Какие-либо подсказки или различные подходы, которые следует учитывать?