Переопределение зависимостей стандартных maven библиотек

Представим ситуацию, когда ваш проект использует какую-либо библиотеку из maven репозитория, имеющую номер стабильной сборки и подключенную стандартным образом в pom.xml через зависимости (dependencies). И в какой-то момент настает необходимость проверить корректность сборки и, соответственно, последующей работы вашего проекта с более новой версией этой же библиотеки (например, SNAPSHOT-версии), но которой, по определенным причинам, нет еще в наличии в maven репозитории.

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

Пример всего вышеописанного выглядит следующим образом (подразумевается, что в maven репозитории имеется стабильная библиотека foo-1.0.jar, вместо которой мы будем использовать при сборке новую тестовую версию foo-1.1-SNAPSHOT.jar):

<project>
    ...
    <dependencies>
        ...
        <dependency>
            <artifactId>foo</artifactId>
            <version>1.0</version>
        </dependency>
        ...
    </dependencies>
    ...
    <build>
        ...
        <plugins>
            <plugin>
                <groupId>org.hedgecode.maven.plugins</groupId>
                <artifactId>classpath-maven-plugin</artifactId>
                <version>1.0</version>
                <configuration>
                    <path>lib/foo-1.1-SNAPSHOT.jar</path>
                    <isMask>false</isMask>
                    <overlapDependencyMatch>true</overlapDependencyMatch>
                </configuration>
            </plugin>
        </plugins>
        ...
    </build>
    ...
</project>