Как запустить модульные тесты с разными версиями библиотеки, не меняя ее вручную? - PullRequest
1 голос
/ 01 февраля 2012

Модульное тестирование выполняется на Java с использованием Maven для сборки и запуска. Я могу использовать либо локальные банки "вне" Maven, либо локальный репозиторий Maven.

Однако я хотел бы найти способ как-нибудь сделать это автоматически, без изменения pom.xml-> running -> изменение pom.xml

Есть ли другой способ, кроме описанного выше или создания pom.xmls, который отличается только конкретной версией библиотеки?

(я использую IntelliJ, если это нужно)

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Вы также можете прочитать версию вашей библиотеки из свойства, например

    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>${jsp.api.version}</version>
    </dependency>

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

Вы даже можете указать его в качестве параметра при запуске сборки. В командной строке SVN это что-то вроде

 mvn -Djsp.api.version=1.8 install

Не знаю, как указать такое свойство при запуске Maven из IntelliJ, но я уверен, что это возможно ....

Этот подход даст вам полную гибкость, позволяющую свободно определять версию lib для каждой сборки. Но если у вас есть только ограниченное количество версий, из которых вы хотите выбрать, вероятно, лучше использовать профили. Просто определите профиль для каждого номера версии и всегда сообщайте Maven, какой профиль использовать при запуске сборки.

2 голосов
/ 01 февраля 2012

То, что вы ищете, это profiles в Maven с properties.

Вы используете property, чтобы указать номер версии, и вы можете использовать profiles, чтобы указать, что это свойство на самом деле, а затем указать, какой профиль использовать при запуске Maven.

...