2009-12-07 2 views
0

스프링 및 스트럿을 사용하고 'C : /source/webapp/WebContent/META-INF/context.xml'에 ' jdbc.username, jdbc.pwd, jdbc.server, jdbc.port 및 jdbc.databasename '을 참조하십시오.ANT 대체 작업 - 속성 파일에서 수정 된 값을 선택하지 않음

<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 :/배포'및 ANT를 사용하여 나는 '/ 소스 C'에서 배포 디렉토리를 구축 할 수 있습니다.

나는

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

, 작업을 대체 다음 ANT를 사용하고 등록 정보 파일에서 값을 jdbc.username, jdbc.pwd, jdbc.server, jdbc.databasename
를 교체합니다.

다음을 달성하는 방법을 잘하지,

내가 파일 속성에서 키 'jdbc.server'의 값을 변경하는 경우, ANT 작업을 대체 를 대체하지 않습니다 C '의 값 :/배포/META-INF/context.xml '. 'C :/deployment'디렉토리를 삭제하고 replace 작업이 포함 된 대상을 실행하면 'context.xml'의 'jdbc.server'값이 변경됩니다.

'C :/deployment'디렉토리를 삭제하지 않고 변경된 값을 바꾸려고합니다. 어떻게하는지. 이 작업에 사용할 수있는 다른 ANT 작업이 있습니까?

답변

1

키를 교체하면 더 이상 jdbc.username, jdbc.pwd 등이 아닌 것으로 간주합니다. 따라서 <replace> 작업은 context.xml에서 해당 항목을 찾을 수 없으며 물론 대체 할 수 없습니다.

수정 시간이 context.xmlint.properties 인 작업이 필요합니다. 이를 위해 ant-contrib의 OutOfDate 작업을 사용할 수 있습니다.

+0

고마워 알렉산더는 ' 작업을 context.xml에서 찾을 수 없으며 물론 대체 할 수 없습니다.'- context.xml을 복사하기 전에 배포 디렉토리에서 이미 존재하는 context.xml을 삭제했습니다. thro 'ANT delete 이제 작업이 예상대로 키 값을 대체합니다. – SyAu

관련 문제