Как запутать пакет OSGi с помощью ProGuard?
-
20-08-2019 - |
Вопрос
В настоящее время я пытаюсь запутать свое приложение Eclipse RCP с помощью ProGuard.Проблема в том, что он запутывает имена пакетов (класс My.Package.Class превращается в нечто вроде a.b.c), но сохраняет имена пакетов в разделе Export-Package MANIFEST.MF.
Это приводит к тому, что мое приложение (которое, по сути, представляет собой набор OSGi-связей) не может быть запущено, так как имена пакетов, указанные в разделе Export-Package файла MANIFEST.MFs, не могут быть разрешены.
Был ли у кого-нибудь успех в том, что ProGuard запутал приложение RCP на базе OSGi?В принципе, я вижу два варианта:либо полностью отключить обфускацию имен пакетов, либо запутать раздел Export-Package MANIFEST.MF, но я не могу найти способ реализовать ни один из них.Кажется, что Proguard скрывает только имя класса Bundle-Activator в MANIFEST.MF, пропуская все остальные разделы.Заранее спасибо!
Решение
Отключите обфускацию имени пакета;Я имею в виду, какие важные бизнес-ценности вы раскрываете, сообщая миру названия пакетов?
Если это действительно проблема, переместите весь код в полностью запутанную библиотеку и используйте ее в незашифрованном плагине.
Тем не менее, подумайте о том, чтобы вообще не тратить время на запутывание.Это будет стоить вам времени и денег, и сомнительно, будет ли какая-то польза.В то время, когда ваши конкуренты начнут разбирать вашу ценную работу, вы будете писать следующую версию.Так зачем беспокоиться?
Другие советы
Обфускация пакета OSGi не поддерживается встроенной функцией ProGuard.Проверить Запрос функции Proguard № 135 для получения дополнительной информации.