Плагин тени Maven игнорирует имена классов / пакетов в строках, что типично для отражения Java.Если библиотека, которую вы пытаетесь «затенить», использует Class.forName («originalpackagename ....»), заштрихованная зависимость не будет работать, поскольку исходное имя пакета останется без изменений.та же история с кодом типа
servlet.addServletWithMapping("org.mortbay.jetty.servlet.DefaultServlet",
URIUtil.SLASH);
и, что еще хуже:
private String[] _serverClasses = {
"-org.mortbay.jetty.plus.annotation.", // don't hide
"-org.mortbay.jetty.plus.jaas.", // don't hide
"-org.mortbay.jetty.plus.naming.", // don't hide
"-org.mortbay.jetty.plus.jaas.", // don't hide
"-org.mortbay.jetty.servlet.DefaultServlet", // don't hide
"org.mortbay.jetty.",
"org.slf4j."
};
(примеры скопированы из исходного кода сервера Jetty)
возможно, уже есть какой-то ResourceTransformerдоступно для Maven Shade, который заменяет исходные имена пакетов / классов в исходном коде строк? ..