메이븐 쉐이드 플러그인은 자바 리플렉션의 전형적인 클래스/패키지 이름을 문자열에서 무시합니다. "음영"하려는 라이브러리가 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."
};
어쩌면 메이븐 그늘에 이미 일부 ResourceTransformer있다 (예 부두 서버 소스 코드에서 복사) 문자열 소스 코드의 원래 패키지/클래스 이름을 대체합니까?