【问题标题】:ANT build path priority for project src & gwt jars项目 src 和 gwt jar 的 ANT 构建路径优先级
【发布时间】:2013-01-10 14:57:42
【问题描述】:

我在 ant 构建文件中的构建路径有问题。由于 gwt 中的错误。我在我的项目中创建了 1 个 gwt 包(com.google.gwt.user.client.ui)并复制了 MenuBar 类,我修改了 Menubar 类代码来解决我们的问题。它的工作很棒。甚至我也可以从 Eclipse 编译它。

但问题是当我运行 ant 构建文件时。菜单栏类取自 gwt jar 并引发“未解决的方法”的异常。我想 ant builds 从我的项目包中获取 MenuBar 类而不是 gwt jar。

请帮我看看该怎么做。

下面是build.xml文件内容

--> --> -->

<property name="main-class" value="com.my.project.main.Main" />
<!-- defbizserver libraries
<path id="libraries">
    <fileset dir="./libs">
        <include name="*.jar"/>
    </fileset>
</path>-->
<!-- accounter server libraries-->
<!--<path id="acclibraries">
    <pathelement location="${gwt.sdk}/gwt-user.jar"/>
    <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
    <fileset dir="${acc.dir}">
        <include name="**/*.jar"/>
    </fileset>
    <pathelement location="${acc.dir}/src"/>

</path>-->
<!-- gwt  libraries-->
<path id="gwtlibraries">

    <fileset dir="${bizantragui.dir}">
        <include name="**/**.jar" />
    </fileset>
    <fileset dir="./libs">
        <include name="*.jar" />
    </fileset>
    <fileset dir="${acc.dir}">
        <include name="**/*.jar" />
    </fileset>
    <pathelement location="${src.dir}" />
    <pathelement location="${acc.dir}/src" />
    <pathelement location="${gwt.sdk}/gwt-user.jar" />
    <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar" />
    <pathelement location="${bizantragui.dir}/src" />
    <!--<pathelement location="${comet.dir}/src" />-->

    <!--<pathelement location="${network.dir}/src" />-->
</path>
<fileset file="webapp" id="webapp">
    <exclude name=".svn" />
</fileset>


<target name="clean">
    <delete dir="${build.dir}" />
    <delete defaultExcludes="false">
        <fileset dir="./webapp/myprouject" />
    </delete>

</target>

<!--Compiling-->
<target name="compile" depends="check-gwtpath" if="gwt.present">
    <mkdir dir="${classes.dir}" />
    <mkdir dir="${libs.dir}" />
    <copy todir="${classes.dir}">
        <fileset dir="${acc.dir}/war/WEB-INF/classes">
            <include name="**/**" />
        </fileset>
    </copy>
    <!--<javac srcdir="${comet.dir}/src" destdir="${classes.dir}" classpathref="gwtlibraries" debug="true" />-->
    <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="gwtlibraries" debug="true" />
    <!--<javac srcdir="${network.dir}" destdir="${classes.dir}" classpathref="gwtlibraries" debug="true" />-->
    <!--<javac srcdir="${acc.dir}/src" destdir="${classes.dir}" classpathref="gwtlibraries" debug="true" />-->

</target>
<target name="gwtcompile" description="GWT COMPILATION">
    <mkdir dir="./webapp" />
    <java classpathref="gwtlibraries" fork="true" classname="com.google.gwt.dev.Compiler">
        <classpath>
            <pathelement location="${bizantragui.dir}/src" />
            <pathelement location="${acc.dir}/src" />
        </classpath>
        <jvmarg value="-Xmx1024m" />
        <arg line="-war ./webapp/" />
        <arg line="-style OBF" />
        <arg line="com.bizantra.Bizantra">
        </arg>
        <arg line="-localWorkers 2" />
    </java>
</target>


<target name="makewebapp">
    <foreach target="compress_file" param="file">
        <path>
            <fileset dir="./webapp/bizantra" id="outputhtml">
                <include name="*.cache.js" />
                <include name="**/*.js" />
            </fileset>
        </path>
    </foreach>
</target>

<target name="compress_file" description="Compress file and make gz file">
    <gzip src="${file}" zipfile="${file}.gz" />
</target>
<target name="setup" depends="compile,gwtcompile,makewebapp">
    <mkdir dir="${classes.dir}" />
    <!--    <copy todir="${classes.dir}">
        <fileset dir="./">
            <exclude name="*xml" />
            <exclude name="build.xml" />
        </fileset>
        <fileset dir="${acc.dir}/src">
            <exclude name="*xml" />
        </fileset>
    </copy>-->
    <!--<copy todir="${classes.dir}/webapp/images">
        <fileset dir="${bizantragui.dir}/war/images">
            <include name="**/*.*" />
        </fileset>
        <fileset dir="${acc.dir}/war/images">
            <include name="**/*.*" />
        </fileset>

    </copy>-->
    <!--<copy todir="${classes.dir}/webapp">
        <fileset dir="${network.dir}/war">

            <include name="**/*.html" />
            <include name="**/*.jsp" />
        </fileset>
    </copy>-->

    <mkdir dir="${classes.dir}/webapp" />

    <mkdir dir="${classes.dir}/mapping" />
    <copy todir="${classes.dir}/mapping">
        <fileset dir="./mapping">
        </fileset>
    </copy>
    <!--<copy todir="${classes.dir}/networkmapping">
        <fileset dir="./networkmapping">
        </fileset>
    </copy>-->
    <copy todir="${classes.dir}">
        <fileset dir="src/">
            <include name="**/*.properties" />
        </fileset>
        <fileset dir="${acc.dir}/src">
            <include name="**/*.properties" />
        </fileset>
    </copy>
    <copy todir="${libs.dir}">
        <fileset dir="./">
            <include name="*.jar" />
        </fileset>
    </copy>
    <jar destfile="${libs.dir}/${ant.project.name}.jar" basedir="${classes.dir}" index="true">
        <manifest>
            <attribute name="Main-Class" value="${main-class}" />
        </manifest>
    </jar>
    <delete dir="${classes.dir}">
    </delete>
</target>
<!--tar Setup-->
<target name="linux-setup-tar" depends="setup">
    <copy todir="${setup.dir}/tar">
        <fileset dir="./">
            <include name="config/**" />
            <include name="libs/**" />
        </fileset>
    </copy>
    <copy todir="${linuxtar-lib.dir}">
        <fileset dir="${libs.dir}">
        </fileset>
    </copy>
    <mkdir dir="${tmp.dir}" />
    <copy todir="${tmp.dir}">
        <fileset dir="${setup.dir}/tar">
            <exclude name=".svn/*" />
        </fileset>
    </copy>
    <chmod file="${tmp.dir}/collaberserver" perm="+x" />
    <chmod file="${tmp.dir}/collaberserverd" perm="+x" />
    <tar destfile="${output.dir}/bizantra-1.0.tar" basedir="${tmp.dir}" />
    <gzip destfile="${output.dir}/bizantra-1.0.tar.gz" src="${output.dir}/bizantra-1.0.tar" />
    <delete dir="${tmp.dir}" />
    <delete file="${output.dir}/bizantra-1.0.tar" />
</target>

<!--Windows Setup-->
<target name="win-setup" depends="setup">
    <copy todir="${setup.dir}/windows">
        <fileset dir="./">
            <include name="libs/**" />
        </fileset>
    </copy>
    <copy todir="${win-lib.dir}">
        <fileset dir="${libs.dir}">
            <include name="*.jar" />
        </fileset>
    </copy>
    <exec command="makensis ${setup.dir}/windows/BizantraSetup.nsi">
    </exec>
    <copy todir="${output.dir}">
        <fileset dir="${setup.dir}/windows">
            <include name="BizantraSetupWithJRE.exe" />
        </fileset>
    </copy>
    <delete>
        <fileset dir="${setup.dir}/windows">
            <include name="BizantraSetupWithJRE.exe" />
        </fileset>
    </delete>

    <move todir="${output.dir}">
        <fileset dir="${setup.dir}/windows">
            <include name="Bizantra.exe" />
        </fileset>
    </move>
</target>

<target name="clean-setup" depends="clean,setup" />
<target name="setupandclean" depends="clean-setup,linux-setup-tar,win-setup" />

【问题讨论】:

  • 请有人帮帮我............
  • 您的 com.google.gwt.use.client.ui 包是否在您的 /src 路径中?你能复制粘贴你的 ANT build.xml 文件吗?您可以从 ANT 构建中复制并粘贴堆栈跟踪吗?这将有助于找到问题;)
  • 是的。我将使用 ant build xml 文件更新我的问题。来自 ant build 的 stracktrace 是在 MenuBar 中找不到 CloseAll() 方法。这是编译器异常,只是因为我修改了菜单栏类并为我的目的添加了 CloseAll 方法。 Ant Builds 从 GWT jar 中获取菜单栏类,而不是我的项目 src/gwtpackge/MenuBar
  • 我不知道你是否能解决这个问题(如果是的话,也许你可以回答你自己的问题)但如果你不能,我可以告诉你,我在所以关于如何让蚂蚁在外部罐子之前使用你的资源。现在找不到了只能搜索+ant +javac +jar

标签: java gwt ant classpath package


【解决方案1】:

您的源代码需要在类路径中早于 GWT 源代码,以便首先找到您的 MenuBar 版本。

看起来您在 GWT 编译任务中同时使用了 classpathref 属性和嵌套的 classpath 元素。嵌套的类路径显得多余。我并不是说这一定是您的问题的原因,但我建议您花一些时间整理类路径声明。我猜你会在这个过程中解决问题。如果没有,至少可以更容易地看到类路径中发生了什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2012-02-24
    • 2012-01-11
    相关资源
    最近更新 更多