我正在使用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:/ deployment'并使用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:/ deployment'并执行 包含replace任务的target,然后它会更改'context.xml'中'jdbc.server'的值。
我想在不删除目录“C:/ deployment”的情况下替换更改的值。这该怎么做。是否有其他ANT任务可用于此操作?
答案 0 :(得分:1)
更换密钥后,我认为它们不再是jdbc.username
,jdbc.pwd
等。因此,<replace>
任务无法在context.xml中找到它们,当然,不能取代它们。
您需要的是将context.xml
和int.properties
的修改时间联系起来的任务。为此,您可以使用ant-contrib的OutOfDate任务。