Недостатки использования функции перемещения плагина Shade - PullRequest
0 голосов
/ 10 декабря 2018

Чтобы разрешить конфликты jar в моем приложении, я использую функцию перемещения плагина затенения.Это работает для меня, но я чувствую, что это взломать.Я хотел бы понять недостатки использования функции перемещения, если таковая имеется.

1 Ответ

0 голосов
/ 10 декабря 2018

Основная проблема заключается в том, что он может потерпеть неудачу в тех случаях, когда имя пакета определяется напрямую (а не только импортируется).Например, если вы используете отражение и создаете экземпляр класса по его имени (включая имя пакета), он сгенерирует неправильный класс.Подобные проблемы могут возникнуть, когда пакет определен в манифесте (для этого есть преобразователь).См. информация о плагине для получения дополнительной информации.

Другое место, где это может быть проблемой, - это зависимость от третьей стороны, которая использует эту же зависимость.Рассмотрим, например, пакет А, который предоставляется.Если пакет A зависит от перемещенного пакета, он будет во время выполнения использовать предоставленный экземпляр вместо перемещенного.Это может привести к непредвиденным последствиям.

Дополнительной проблемой является то, что в некоторых случаях пакет может содержать некоторую инициализированную / статическую информацию (например, он загружает некоторую информацию один раз или имеет большую статическую таблицу).В этих случаях важно понимать, что теперь существует ДВА совершенно отдельных экземпляра пакета.

...