ANT заменить задачу - не получить измененное значение из файла свойств - PullRequest
0 голосов
/ 07 декабря 2009

Я использую Spring и Struts и имею следующую запись в 'C: /source/webapp/WebContent/META-INF/context.xml' с токенами, такими как 'jdbc.username, jdbc.pwd, jdbc.server jdbc.port и jdbc.databasename '.

   <Context cachingAllowed="false" useHttpOnly="true">
       <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource"
       factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
       maxActive="100" maxIdle="30" maxWait="10000"
       username="jdbc.username" password="jdbc.pwd"
       driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
       url="jdbc:sqlserver://jdbc.server:jdbc.port;databaseName=jdbc.databasename;"/>
   </Context>

У меня есть каталог развертывания - 'C: / deploy', и с помощью ANT я создаю каталог развертывания из 'C: / source'.

Я использую следующую задачу замены ANT,

    <replace file="C:/deployment/META-INF/context.xml" replacefilterfile="C:/deployment/WEB-INF/classes/conf/int.properties" />

и замените jdbc.username, jdbc.pwd, jdbc.server, jdbc.databasename
со значениями из файла свойств.

Не уверен, как добиться следующего,

Если я изменю значение ключа 'jdbc.server' в файле свойств, задача замены ANT не заменит значение в «C: /deployment/META-INF/context.xml». Если я удаляю каталог 'C: / deploy' и выполняю цель, содержащая задачу замены, затем она изменяет значение 'jdbc.server' в 'context.xml'.

Я хочу заменить измененное значение, не удаляя каталог «C: / deploy». Как это сделать Есть ли еще какие-либо задачи ANT для этой операции?

1 Ответ

1 голос
/ 07 декабря 2009

После того, как вы заменили ключи, я предполагаю, что они больше не jdbc.username, jdbc.pwd и т. Д. Следовательно, задача <replace> не может найти их в вашем context.xml и, конечно, не может заменить их.

Вам нужна задача, которая связывает времена модификации context.xml и int.properties. Для этого вы можете использовать задачу ant-contrib OutOfDate .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...