以下是完整的ant目标,我正在运行它将驱动程序插入到我的wildfly standalone.xml文件中:
<target name="xmlrewrite" >
<!--Driver-->
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<xmltask source="standalone.xml" dest="standalone.xml" report="true">
<copy path="//driver[@module='com.oracle.ojdbc6']/text()" property="modelexists"/>
<insert
path="*[local-name()='server']/*[local-name()='profile']/*[local-name()='subsystem'][3]/*[local-name()='datasources']/*[local-name()='drivers']"
unless="modelexists">
<![CDATA[
<driver name="oracle" module="com.oracle.ojdbc6">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
]]>
</insert>
</xmltask>
</target>
据我理解,只有在未存在该条目的情况下才应该在 standalone.xml 中进行输入,因为我使用了
unless="modelexists"
。但显然它正在创建一个新的 oracle 驱动程序条目,并带有额外的
xmlns=""
,这会导致 oracle 条目出现两次,从而导致我的构建失败。请告诉我是否需要更多信息。