Ситуация: у меня есть класс MyController, который работает с некоторыми внешними веб-сервисами.
public class MyController {
private String integrationWebServiceURL;
}
URL-адрес веб-служб этого класса передается во время bean-компонента контроллера конфигурации в дескрипторе ( applicationContext.xml )
<bean id="myController" class="com.mypath.MyController">
<property name="integrationWebServiceURL" value="${integration.web.service.url}"/>
</bean>
Значение является динамическим, фактическое значение сохраняется в файле свойств application.properties
integration.web.service.url=${pom.integration.web.service.url}
Но это не конец - реальное значение сохраняется в файле проекта maven ( pom.xml ) с фильтрацией = true.
<pom.integration.web.service.url>http://mywebservices.com</pom.integration.web.service.url>
Итак, когда мы используем mvn install test значения из pom.xml копируются в соответствующие заполнители в application.properties, а затем тесты моего класса работают просто отлично.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/applicationContext.xml"})
public class MyControllerTest {
}
Вопрос : Мне нужно запустить свой тест из IDE, чтобы иметь возможность играть с различными настройками и использовать функцию отладки IDE. Но если я просто запускаю этот тест из IDE без предварительной сборки Maven - тогда адрес моего веб-сервиса будет просто получен из application.properties и равен "$ {pom.integration.web.service.url}" (например, процесс фильтрации Maven не не работаю до теста). Как настроить Maven, Spring или jUnit для извлечения моего значения из pom.xml?
ПРИМЕЧАНИЕ : я знаю, что могу просто явно установить это значение в файлах application.properties или applicationContext.xml, которые используются Test-классом, но мне нужно извлечь эти значения из pom.xml.