Конфигурация плагина Maven Shade не заменяет пакет - PullRequest
1 голос
/ 25 февраля 2020

Исходя из требования Класс библиотеки, несовместимый с зависимостями Maven , я попробовал плагин shade, как показано ниже, но безуспешно.

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
    <execution>
        <phase>compile</phase>
        <goals>
            <goal>shade</goal>
        </goals>
        <configuration>
            <filters>
                <filter>
                    <artifact>com.lib:Encoder</artifact>
                    <includes>
                        <include>x/y/z/**</include>
                    </includes>
                    <excludes>
                        <exclude>a/b/c/**</exclude>
                    </excludes>
                </filter>
            </filters>
        </configuration>
    </execution>
</executions>

Моя цель - заменить пакет со структурой ab c с xyz классов. Я пропустил какие-либо важные конфигурации здесь?

1 Ответ

1 голос
/ 25 февраля 2020

Чтобы заменить пакет ab c с xyz на вашей затененной банке, вы должны добавить запись relocations , как указано ниже для maven-shade-plugin:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <minimizeJar>true</minimizeJar>
                <relocations>
                    <relocation>
                        <pattern>x.y.z</pattern>
                        <shadedPattern>a.b.c</shadedPattern>
                    </relocation>
                </relocations>
            </configuration>
        </execution>
    </executions>
</plugin>
...