Я не могу заставить плагин maven shade фактически перемещать классы в другом пакете.
OcpSoft случайно заштриховал impl, регистрирующий общее достояние, в их банке с симпатичными лицами. Это делает почти невозможным отключение некоторых раздражающих сообщений журнала, потому что их затененный импл не будет воспринимать обычную конфигурацию регистрации общего ресурса.
Я решил, что лучший способ исправить это - создать затененную версию JCL. -SLF4J мост. Однако я не могу заставить плагин maven shade фактически перемещать необходимые классы.
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.30</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<includes>org</includes>
<shadedPattern>org.ocpsoft.shade.org</shadedPattern>
</relocation>
</relocations>
<artifactSet>
<includes>
<include>org.slf4j:jcl-over-slf4j</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Это приводит к следующему:
$ unzip ocpsoft-slf4j-bridge-1.0.0-SNAPSHOT.jar
Archive: ocpsoft-slf4j-bridge-1.0.0-SNAPSHOT.jar
creating: META-INF/
inflating: META-INF/MANIFEST.MF
creating: META-INF/maven/
creating: META-INF/maven/com.emoneyusa.xcut/
creating: META-INF/maven/com.emoneyusa.xcut/ocpsoft-slf4j-bridge/
inflating: META-INF/maven/com.emoneyusa.xcut/ocpsoft-slf4j-bridge/pom.xml
inflating: META-INF/maven/com.emoneyusa.xcut/ocpsoft-slf4j-bridge/pom.properties
creating: META-INF/services/
inflating: META-INF/services/org.apache.commons.logging.LogFactory
creating: org/
creating: org/apache/
creating: org/apache/commons/
creating: org/apache/commons/logging/
creating: org/apache/commons/logging/impl/
inflating: org/apache/commons/logging/impl/NoOpLog.class
inflating: org/apache/commons/logging/impl/SimpleLog$1.class
inflating: org/apache/commons/logging/impl/SimpleLog.class
inflating: org/apache/commons/logging/impl/SLF4JLocationAwareLog.class
inflating: org/apache/commons/logging/impl/SLF4JLog.class
inflating: org/apache/commons/logging/impl/SLF4JLogFactory.class
inflating: org/apache/commons/logging/Log.class
inflating: org/apache/commons/logging/LogConfigurationException.class
inflating: org/apache/commons/logging/LogFactory.class
creating: META-INF/maven/org.slf4j/
creating: META-INF/maven/org.slf4j/jcl-over-slf4j/
inflating: META-INF/maven/org.slf4j/jcl-over-slf4j/pom.xml
inflating: META-INF/maven/org.slf4j/jcl-over-slf4j/pom.properties
Я ожидал, что вышеупомянутые классы будут в пакете org.ocpsoft.shade.org.apache.commons.
сейчас