1

我已经通过 ivy 配置为项目添加了 mvp4g jar。它添加正确,并且还在 mvp4g 的 gwt.xml 文件中提到了行。但是我正在尝试编译它给我以下错误的应用程序:

加载继承的模块 'com.mvp4g.Mvp4gModule' [错误] 无法在您的类路径上找到 'com/mvp4g/Mvp4gModule.gwt.xml';可能是拼写错误,或者您忘记包含源的类路径条目?[错误] 第 13 行:处理元素“继承”com.google.gwt.core.ext.UnableToCompleteException 时出现意外异常:(请参阅以前的日志条目)在 com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java :278) 在 com.google.gwt.dev.cfg.ModuleDefSchema$BodySchema.__inherits_begin(ModuleDefSchema.java:495) 在 sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.google.gwt.dev.util.xml.HandlerMethod.invokeBegin(HandlerMethod.java:

请帮助我。

4

1 回答 1

0

分析

在浏览了项目主页后,我发现丢失的 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任务引发的。

例子

常春藤.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>

构建.xml

在 ANT 文件中,我将使用 ivy cachepath任务来创建一个 ivy 托管的 ANT 路径。

<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>
于 2012-05-28T17:18:33.043 回答