Я использую Spring 2.5.6 и создаю свой проект с Maven 2.2.1. В Spring мы используем bean-компоненты PropertyPlaceholderConfigurer
для загрузки свойств для настройки таких вещей, как база данных. Довольно стандартный материал. У нас также есть два разных набора тестов: модульные тесты и интеграционные тесты.
Я хотел бы иметь возможность использовать разные файлы свойств, чтобы по-разному настраивать такие вещи, как URL-адрес базы данных, для двух разных типов тестов. Например, я хочу, чтобы модульные тесты использовали базу данных localhost
, а интеграционные тесты - базу данных mydatabase.example.com
.
Я пробовал несколько вариантов, в которых я помещаю файлы свойств в отдельные подкаталоги (один для модульных тестов, а другой - для интеграционных). Оттуда я пробовал использовать тег additionalClasspathElements
для maven-failsafe-plugin
, но, похоже, это вообще не сработало. Я попытался использовать maven-antrun-plugin
для копирования файлов в target/classes
, но это не сработало, когда я запустил mvn verify -Dtest=sometest
.
Я также попытался использовать systemPropertyVariables
в maven, чтобы установить свойство с именем buildEnvironment
, на которое я затем попытался ссылаться в своем определении bean-компонента Spring:
<property name="locations">
<value>classpath:${buildEnvironment}/my-test.properties</value>
</property>
Но Spring отказалась разрешить ${buildEnvironment}
. На данный момент у меня нет идей. Я уверен, что есть хороший и простой способ сделать это, но я не могу его понять.
Любой совет будет очень признателен.