Мое приложение должно знать путь к каталогу, в котором он может хранить свои данные. Я попытался установить системное свойство Java и использовать эту переменную в качестве заполнителя в моем Spring XML.Свойства системы не могут быть разрешены в Spring XML с использованием Maven
В Eclipse я добавил это свойство в среду моей конфигурации запуска, и он работает нормально. Spring решает $ {dataDir} на правильный путь.
Но когда я тестирую приложение с использованием Maven2 (mvn test -DdataDir = c:/data), Spring жалуется, что он не может разрешить местозаполнитель.
My Spring XML выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- Allows me to use system properties in this file -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
<bean id="xmlConfiguration" class="org.apache.commons.configuration.XMLConfiguration">
<constructor-arg index="0">
<value>${dataDir}/conf/config.xml</value>
</constructor-arg>
</bean>
</beans>
Почему это свойство системы не передается Spring? Что я делаю не так? Спасибо за любые предложения!
EDIT: Конечно, вы правы: $ {baseDir} должен быть $ {dataDir}. Но это был просто опечатка в этом вопросе, а не в реальном коде.
Я попытался MAVEN_OPTS раньше, но это не работает, либо ...
должно быть baseDir, а не dataDir – toolkit
toolkit, да, я так думаю. –