2009-03-19 8 views
4

В настоящее время я пытаюсь запутать приложение Eclipse RCP с помощью ProGuard. Проблема заключается в том, что он запутывает имена пакетов (класс My.Package.Class превращается в нечто вроде a.b.c), но сохраняет имена пакетов в разделе Export-Package MANIFEST.MF.Как сфотографировать комплект OSGi с помощью ProGuard?

Это приводит к тому, что мое приложение (которое представляет собой набор OSGi-пакетов, на самом деле) не может быть запущено, поскольку имена пакетов, указанные в разделе Export-Package в файле MANIFEST.MF, не могут быть разрешены.

Неужели кто-то добился успеха в ProGuard, запутывающем приложение RCP на базе OSGi? В принципе, я вижу два варианта: либо полностью отключить обфускацию пакетов, либо обрезать MANIFEST.MF в разделе Export-Package, но я не могу найти способ реализовать их. Proguard, похоже, запутывает только имя класса Bundle-Activator в MANIFEST.MF, пропуская все остальные разделы. Заранее спасибо!

ответ

6

Отключить имя пакета obfuscation; Я имею в виду, какие важные бизнес-ценности вы раскрываете, рассказывая миру имена пакетов?

Если это действительно проблема, переместите весь код в полностью запутанную библиотеку и используйте библиотеку в не-обфускационном плагине.

Это говорит о том, что вы не тратите время на обфускацию. Это будет стоить вам времени и денег, и сомнительно, есть ли какая-либо польза. В то время, когда ваши конкуренты начали разбирать вашу ценную работу, вы будете писать следующую версию. Так зачем беспокоиться?

+0

Аарон, благодарю вас за ответ! Как я уже сказал, отключение обертывания пакетов будет работать, но я не знаю, как реализовать это (и если это вообще можно добиться) с помощью Proguard ... Чтобы запутать или не запутать - это не выбор. Наш клиент хочет этого :) –

+0

В этом случае используйте мое второе предложение. –

+0

Спасибо! Я следил за вашим предложением и объединил все модули в один мегабунд, устраняя таким образом все межмодульные зависимости, вызывающие проблемы. Это сработало. –

Смежные вопросы