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

Возможно ли иметь другой набор зависимостей в файле maven pom.xml для разных профилей?

например.

mvn -P debug
mvn -P release

Я хотел бы получить другой файл jar зависимости зависимости в одном профиле, который имеет те же имена классов и различные реализации тех же интерфейсов.

Ответ 1

Для цитирования maven документации по этому вопросу:

Элемент profile содержит как дополнительную активацию (триггер профиля), так и набор изменений, которые должны быть внесены в POM, если этот профиль активирован. Например, проект, созданный для тестовой среды, может указывать на другую базу данных, отличную от конечной. Или зависимости могут быть извлечены из разных репозиториев на основе используемой версии JDK

(Акцент мой)

Просто поместите зависимость для профиля release внутри самого объявления профиля и сделайте то же самое для debug.

<profiles>
    <profile>
        <id>debug</id>
        …
        <dependencies>
            <dependency>…</dependency>
        </dependencies>
        …
    </profile>
    <profile>
        <id>release</id>
        …
        <dependencies>
            <dependency>…</dependency>
        </dependencies>
        …
    </profile>
</profiles>

Ответ 2

Ваш groupId, artifactId должен быть пронумерован в ваших профилях как свойства, и вы можете переместить ваши зависимости в общий раздел.