Разные зависимости для разных профилей сборки - PullRequest
101 голосов
/ 03 октября 2008

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

, например

mvn -P debug
mvn -P release

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

Ответы [ 2 ]

155 голосов
/ 03 октября 2008

Цитировать Maven документацию по этому :

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

(Акцент мой)

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

<profiles>
    <profile>
        <id>debug</id>
        …
        <dependencies>
            <dependency>…</dependency>
        </dependencies>
        …
    </profile>
    <profile>
        <id>release</id>
        …
        <dependencies>
            <dependency>…</dependency>
        </dependencies>
        …
    </profile>
</profiles>
5 голосов
/ 21 июля 2009

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

...