#maven-plugin #maven-3 #proguard
#maven-плагин #maven-3 #proguard
Вопрос:
Вот как выглядит мой плагин сборки в stanza:
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<options>
<option>-dontshrink</option>
<option>-dontnote</option>
<option>-allowaccessmodification</option>
<option>-dontskipnonpubliclibraryclasses</option>
<option>-dontskipnonpubliclibraryclassmembers</option>
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
</configuration>
</plugin>
Вот что я получаю в результате выполнения mvn clean package
[proguard] Error: You have to specify '-keep' options for the shrinking step.
Как мне указать параметры сохранения для библиотеки, в которой я просто хочу запутывание?
Комментарии:
1.Cfr. Руководство по ProGuard > Устранение неполадок > Ошибка: вы должны указать параметры ‘-keep’
2. это даже не объясняет, как решить мою проблему, очевидно, мне нужно указать
-keep
параметры, но на самом деле ничто не дает мне примера того, что мне нужно указать вpom.xml
файле Maven. Это просто повторяет то, что уже достаточно ясно сказано в сообщениях об ошибках. И эта ссылка также не имеет ничего общего с Maven.3. Приведенный вами плагин сборки в stanza уже содержит теги <option>, которые содержат параметры ProGuard. Вы можете добавить — сохранить параметры там (очевидно?). Насколько я могу судить, это не имеет ничего общего с Maven или pom.xml действительно.
4. нет документации о том, как должен выглядеть мой
-keep
вариант?5. Руководство ProGuard содержит много информации (вы пропустили это?). Примечательно: руководство по ProGuard > Примеры > Типичная библиотека.
Ответ №1:
Вы должны определить с помощью -keep
опции точки входа вашего приложения, потому что вы не можете запутать его. Например, если ваш основной класс запутан, он будет переименован, и вы не сможете его запустить. То же самое для общедоступных интерфейсов ваших API.