如何解决如何使用jaxb更新pom.xml文件?
我正在开发一个必须以编程方式更新pom.xml文件的应用程序。 我正在遵循的步骤。
- 从maven XSD(http://maven.apache.org/xsd/maven-4.0.0.xsd)创建JAVA POJO。
- 使用以下程序在POJO中加载pom.xml文件并在模型中更新值,然后更新相同的pom.xml文件。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
File xml = new File("C:\\DS Designer Forum\\pomfiles\\pom.xml");
Document document = db.parse(xml);
JAXBContext jc = JAXBContext.newInstance(Model.class);
Binder<Node> binder = jc.createBinder();
Model model = (Model) binder.unmarshal(document);
Dependencies dependencies = model.getDependencyManagement().getDependencies();
if(dependencies != null) {
for(Dependency dependency : dependencies.getDependency()) {
if(!StringUtils.isEmpty(dependency.getScope()) && dependency.getScope().contains("provided")) {
String scope = dependency.getScope().replace("provided",StringUtils.EMPTY);
dependency.setScope(scope);
}
}
}
binder.updateXML(model);
TransformerFactory tf = TransformerFactory.newInstance();
tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,false);
Transformer t = tf.newTransformer();
t.transform(new DOMSource(document),new StreamResult(new File("C:\\DS Designer Forum\\pomfiles\\aaaaapom.xml")));
出现以下错误。
** 线程“主”中的异常javax.xml.bind.UnmarshalException:意外元素(uri:“”,local:“ project”)。预期的元素是 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:726) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:109) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext $ DefaultRootLoader.childElement(UnmarshallingContext.java:1131) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:556) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:538) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:60) 在com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:153) 在com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:229) 在com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:112) 在com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:95) 在com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:88) 在com.sun.xml.internal.bind.v2.runtime.BinderImpl.associativeUnmarshal(BinderImpl.java:146) 在com.sun.xml.internal.bind.v2.runtime.BinderImpl.unmarshal(BinderImpl.java:117) 在com.sunlife.innovation.update.LoadInfoFromPOMFile.main(LoadInfoFromPOMFile.java:52) **
请帮助我。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。