我想更新debug.classpath
财产的价值。我XmlTask
用来做操作。但是,我正在运行DTD
找不到问题。
这是我的目标 XML 文件。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configuration SYSTEM "xconf.dtd">
<Configuration>
<Property name="debug.classpath" value="<changeme>"
</Configuration>
这是我的 Ant 目标。
<target name="configure" >
<xmltask source="myxml.xml">
<attr path="//Property[@name='debug.classpath']" attr="value" value="New Value"/>
</xmltask>
</target>
当我执行这个目标时,我得到以下错误。
[xmltask] java.io.FileNotFoundException: D:\utils\xconf.dtd(系统找不到指定的文件)
此 DTD 存在于一个名为 .jar 的 Jar 文件中Utils.jar
。谷歌搜索后,我找到XmlCatalog
了任务并使用了我在目标版本下面编写的任务。(不确定我是否有意使用XmlCatalog
)。不在 Ant的Utils.jar
类路径中,因此尝试使用<classpath>
.
<target name="configure">
<xmlcatalog id="XconfDtd">
<classpath>
<pathelement location="D:/libs/Utils.jar"/>
</classpath>
<dtd location="xconf.dtd" />
</xmlcatalog>
<xmltask source="${env.WT_HOME}/codebase/wt.properties.xconf">
<xmlcatalog refid="XconfDtd" />
<attr path="//Property[@name='debug.classpath']" attr="value" value="New Value" />
</xmltask>
</target>
但是,当我执行此目标时,出现以下错误
[xmltask] java.lang.NullPointerException [xmltask] at org.apache.tools.ant.types.XMLCatalog.findMatchingEntry(XMLCatalog.java:592) [xmltask] at org.apache.tools.ant.types.XMLCatalog.access$000 (XMLCatalog.java:119) [xmltask] 在 org.apache.tools.ant.types.XMLCatalog$InternalResolver.resolveEntity(XMLCatalog.java:811) [xmltask] 在 org.apache.tools.ant.types.XMLCatalog.resolveEntity (XMLCatalog.java:385) [xmltask] 在 com.sun.org.apache.xerces.internal.util.EntityResolverWrapper.resolveEntity(EntityResolverWrapper.java:110) [xmltask] 在 com.sun.org.apache.xerces.internal .impl.XMLEntityManager.resolveEntityAsPerStax(XMLEntityManager.java:994) [xmltask] 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1149) [xmltask] 在 com.sun .org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1047) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java: 960) [xmltask] 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) [xmltask] 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl。 next(XMLNSDocumentScannerImpl.java:116) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) [xmltask] at com.sun.org.apache.xerces。 internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) [xmltask] 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.爪哇:764)
即使在投入之后Utils.jar
我$ANT_HOME/lib
仍然看到上述错误。非常感谢任何帮助。您可以建议在 Ant 中实现此目的的任何替代方法。
提前致谢。