GWT + MVP4g+Ivy: ошибка компиляции
Я добавил jv-файл mvp4g для проекта через конфигурацию ivy. Он добавлен правильно, а также упоминаю строку в файле gwt.xml для mvp4g. Но я пытаюсь скомпилировать приложение, которое выдает мне следующую ошибку:
Загрузка унаследованного модуля 'com.mvp4g.Mvp4gModule' [ОШИБКА] Невозможно найти 'com/mvp4g/Mvp4gModule.gwt.xml' на вашем пути к классам; может быть опечатка, или, может быть, вы забыли включить запись classpath для источника? [ОШИБКА] Строка 13: непредвиденное исключение при обработке элемента "наследует" com.google.gwt.core.ext.UnableToCompleteException: (см. Предыдущие записи журнала) в com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:278) at com.google.gwt.dev.cfg.ModuleDefSchema$BodySchema.__inherits_begin(ModuleDefSchema.java:495) в sun.reflect.GeneratedMethodAccessor1.invoke(Неизвестный источник) в sun.reflect.DelegatingMethodAccess.Omp.:25) на java.lang.reflect.Method.invoke(Method.java:597) на com.google.gwt.dev.util.xml.HandlerMethod.invokeBegin(HandlerMethod.java:230) на com.google.gwt.dev.util.xml.ReflectiveParser$Impl.startElement(ReflectiveParser.java:294) в com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) в com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179) в com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl. Импл parsers.XML11Configuration.parse(XML11Configuration.java:808) в com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) в com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) на com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) на com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) в com.google.gwt.dev.util.xml.ReflectiveParser$Impl.parse(ReflectiveParser.jav) a:347) в com.google.gwt.dev.util.xml.ReflectiveParser$Impl.access$200(ReflectiveParser.java:68) в com.google.gwt.dev.util.xml.ReflectiveParser.parse(ReflectiveParser.java:418) на com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:296) на com.google.gwt.dev.cfg.ModuleDefLoader$1.load(ModuleDefLoader.java:198) на com.google..gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:324) в com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(ModuleDefLoader.java:156) в com.google.gwt.unC. (Compiler.java:196) на com.google.gwt.dev.Compiler$1.run(Compiler.java:170) на com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88) на com.google..gwt.dev.CompileTaskRunner.runWithApp ProperLogger(CompileTaskRunner.java:82) в com.google.gwt.dev.Compiler.main(Compiler.java:177) [ОШИБКА] Ошибка при синтаксическом анализе XML com.google.gwt.core.ext.UnableToCompleteException: (см. Предыдущие записи журнала) по адресу com.google.gwt.dev.util.xml.DefaultSchema.onHandlerExcep (DefaultSchema.java:58) на com.google.gwt.dev.util.xml.Schema.onHandlerException(Schema.java:66) на com.google.gwt.dev.util.xml.Schema.onHandlerException (схема). Java: 66) на com.google.gwt.dev.util.xml.HandlerMethod.invokeBegin(HandlerMethod.java:240) на com.google.gwt.dev.util.xml.ReflectiveParser $ Impl.startElement (ReflectiveParser.java: 294) в com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) в com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyDlejj: AbstractXML 179) по адресу com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343) по адресу com.sun.org.apache.xerces.internal.impl.XMLDocumentImpanFramentFragment. Java:2755) на com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) на com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) в com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) в com.sun.org.apache.xpsers. XML11Configuration.parse (XML11Configuration.java:737) в com.sun.org.apache.xerces.internal.parsers.XMLParser.parse (XMLParser.java:119) в com.sun.org.apache.xerces.internal.parsers. AbstractSAXParser.parse (AbstractSAXParser.java:1205) на com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse (SAXParserImpl.java:522) на com.google.gut.dev.ReflectiveParser$Impl.parse(ReflectiveParser.java:347) в com.google.gwt.dev.util.xml.ReflectiveParser$Impl.access$200(ReflectiveParser.java:68) в com.google.gwt.dev.util.xml.ReflectiveParser.parse (ReflectiveParser.java:418) на com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:296) на com.google.gwt.dev.cfg.ModuleDefLoader $ 1.load (модуль). Java: 198) на com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:324) в com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(ModuleDefLoader.java:156) в com.google.gwt.dev.Compiler.run: Compilej.) на com.google.gwt.dev.Compiler$1.run(Compiler.java:170) на com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88) на com.google.gwt.dev.CompileTaskRunner.runWithAppresponLogger(CompileTaskRunner.java:82) at com.google.gwt.dev.Compiler.main(Compiler.java:177) [ОШИБКА] Неожиданная ошибка при обработке XML com.google.gwt.core.ext.UnableToCompleteException: (см. предыдущие записи в журнале) на com.google.gwt.dev.util.xml.ReflectiveParser$Impl.parse(ReflectiveParser.java:371) на com.google.gwt.dev.util.xml.ReflectiveParser $ Impl.access $ 200 (ReflectiveParser.java: 68) на com.google.gwt.dev.util.xml.ReflectiveParser.parse (ReflectiveParser.java:418) на com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:296) в com.google.gwt.dev.cfg.ModuleDefLoader $ 1.load (ModuleDefLoader.jav a: 198) на com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:324) на com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(ModuleDefLoader.java:156) на com.google..gwt.dev.Compiler.run(Compiler.java:196) на com.google.gwt.dev.Compiler$1.run(Compiler.java:170) на com.google.gwt.dev.CompileTaskRunner.doRun (CompileTaskRunner. Java: 88) на com.google.gwt.dev.CompileTaskRunner.runWithApp ProperLogger(CompileTaskRunner.java:82) на com.google.gwt.dev.Compiler.main (Compiler.java:177).
Пожалуйста помоги мне с этим.
1 ответ
Анализ
Покопавшись на домашней странице проекта, я обнаружил, что отсутствующий XML-файл фактически находится внутри jar-файла:
unzip -t ./Mvp4g_Layout_Part2/war/WEB-INF/lib/mvp4g-1.4.0.jar | grep xml
testing: com/mvp4g/Mvp4gModule.gwt.xml OK
testing: META-INF/maven/com.googlecode.mvp4g/mvp4g/pom.xml OK
Это означает, что хотя ivy может быть загружен, его нет в вашем пути к классам компиляции.
предположение
Вы не указали, как вы используете jar, поэтому я должен предположить, что вышеуказанная ошибка была вызвана задачей ANT javac.
пример
ivy.xml
Я объявил бы зависимость в ivy и связал бы ее с конфигурацией компиляции следующим образом:
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="compile" description="Required to compile application"/>
</configurations>
<dependencies>
<dependency org="com.googlecode.mvp4g" name="mvp4g" rev="1.4.0" conf="compile->default"/>
</dependencies>
</ivy-module>
build.xml
В файле ANT я бы использовал задачу ivy cachepath для создания пути ANT, управляемого ivy.
<target name="init">
<ivy:resolve/>
<ivy:report todir='${ivy.reports.dir}' graph='false' xml='false'/>
<ivy:cachepath pathid="compile.path" conf="compile"/>
</target>
Этот путь затем используется как обычно в задаче javac (или любой другой задаче ANT, которая может принять ссылку на путь к классу)
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" debug="true" classpathref="compile.path"/>
</target>