【问题标题】:Running an Ant-builded project as web-application将 Ant-build 项目作为 Web 应用程序运行
【发布时间】:2013-10-22 09:39:01
【问题描述】:

我正在尝试运行一个“project.zip”,我从http://www.gwtproject.org/articles/using_gwt_with_hibernate.html 的 GWT 官方网站下载了有关 RPC 和 Hibernate 的信息。

指南建议:

"你可以使用 Ant 构建项目,以及启动托管模式 在嵌入式 Jetty 中查看 UI 和我们的 Hibernate 实例设置 服务器。”

所以我已经使用 New > Project menu-> Java Project from Existing Ant Buildfile 向导在 Eclipse 上导入了它。

我的最终目标是在 Eclipse 上将它作为 web 应用程序运行,但它会给我各种类型的错误,最重要的是没有 run as-> web 应用程序但只有 as - >蚂蚁构建!而且 Eclipse 中缺少所有的 War 目录。

如何将这个 Ant 构建项目.zip 更改为普通项目 GWT?我很惊讶官方的 Google 指南怎么会出现这么多问题!

如果您需要,这是 build.xml

<?xml version="1.0" encoding="utf-8" ?>
<project name="Guestbook" default="build" basedir=".">

    <!-- Define gwt.home, gwt.dev.jar, appengine.sdk.home -->
    <property file="build.properties"/>

    <path id="project.class.path">
        <pathelement location="war/WEB-INF/classes"/>
        <pathelement location="${gwt.home}/gwt-user.jar"/>
        <!-- Add any additional non-server libs (such as JUnit) -->
        <fileset dir="war/WEB-INF/lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <target name="libs" description="Copy libs to WEB-INF/lib">
        <mkdir dir="war/WEB-INF/lib" />
        <copy todir="war/WEB-INF/lib" file="${gwt.home}/gwt-servlet.jar" />
        <!-- Add any additional server libs that need to be copied -->
        <copy todir="war/WEB-INF/lib" flatten="true">
            <fileset dir="lib/">
                <include name="**/*.jar"/>
            </fileset>
        </copy>
     </target>

      <target name="javac" depends="libs" description="Compile java source">
        <mkdir dir="war/WEB-INF/classes"/>
        <javac srcdir="src" includes="**" encoding="utf-8"
            destdir="war/WEB-INF/classes"
            source="1.5" target="1.5" nowarn="true"
            debug="true" debuglevel="lines,vars,source">
            <classpath refid="project.class.path"/>
        </javac>
    </target>

    <!-- can add additional arguments like -logLevel INFO or -style PRETTY -->
    <target name="gwtc" depends="javac" description="GWT compile to JavaScript">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
            <classpath>
                <pathelement location="src"/>
                <path refid="project.class.path"/>
                <pathelement location="${gwt.home}/${gwt.dev.jar}"/>
            </classpath>
            <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
            <jvmarg value="-Xmx256M"/>
            <arg value="com.google.musicstore.MusicStore"/>
        </java>
    </target>

    <target name="hosted" depends="javac" description="Run hosted mode">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.HostedMode">
            <classpath>
                <pathelement location="src"/>
                <path refid="project.class.path"/>
                <pathelement location="${gwt.home}/${gwt.dev.jar}"/>
            </classpath>
            <jvmarg value="-Xmx256M"/>
            <arg value="-startupUrl"/>
            <arg value="MusicStore.html"/>
            <arg value="com.google.musicstore.MusicStore"/>
            <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
        </java>
    </target>

    <target name="build" depends="gwtc" description="Build this project" />

    <target name="clean" description="Cleans this project">
        <delete dir="war/WEB-INF/classes" failonerror="false" />
        <delete dir="war/musicstore" failonerror="false" />
    </target>

</project>

【问题讨论】:

  • 你运行过“ant build”吗?
  • @smcg 当我在终端上运行“ant build”或在 eclipse 中运行 as->ant build 时,它给了我一个很长的错误,我不明白,并且构建在 1 秒后失败......这个是堆栈跟踪:pastebin.com/KJanE7aY

标签: eclipse gwt servlets web-applications ant


【解决方案1】:

运行

ant

构建项目。

运行

ant hosted

运行项目。

我对普通 GWT 项目的概念感到困惑 ...我不确定它的含义。但如果它意味着一个eclipse-ready-GWT-project,你可能会感到失望,因为正如你自己所说:

您可以使用 Ant 构建项目

这是一个基于 ant 的项目,而不是 eclipse 项目。你可以从 eclipse 中调用 ant,但是没有特定的 eclipse 文件(.project 和 .classpath),所以它可以使用 gwt eclipse 插件运行而无需自己配置。

【讨论】:

  • 是的,我的意思是 eclipse-ready-GWT-project...所以不可能...问题是当我在终端上运行“ant”或“run as->ant build”时在 Eclipse 中,它给了我一个很长的错误,并且构建在 1 秒后失败......这是堆栈跟踪:pastebin.com/KJanE7aY
  • 尝试从命令行运行它(当它从 Eclipse 运行时,构建所需的一些库可能在 ant 运行时类路径中丢失。(其他选项,您在某些 xml 文件中进行了错误的编辑? )
  • 即使我通过命令行运行它(正如我上面在终端上所说的),它也会给我同样的 eclipse 错误......我唯一编辑的是我在其中的“build.properties”文件设置了“build.xml”文件中使用的 gwt.home 和 gwt.dev.jar 的路径......我知道它们是正确的,因为在此之前它给了我错误的 jar 路径
  • 您的 pastebin 中缺少堆栈跟踪的顶部,这就是根错误可见的地方。
  • 我在跟踪中发现了这个:[ERROR] Line 33: Unexpected exception while processing element 'inherits' [java] com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)(你确定你使用的是正确的 gwt 版本吗?)
猜你喜欢
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
相关资源
最近更新 更多