Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 删除GPE复制的GAE JAR_Google App Engine_Eclipse Plugin - Fatal编程技术网

Google app engine 删除GPE复制的GAE JAR

Google app engine 删除GPE复制的GAE JAR,google-app-engine,eclipse-plugin,Google App Engine,Eclipse Plugin,在我的WEB-INF/lib中,我只需要两个与应用引擎相关的jar(appengine-api-1.0-sdk-1.6.0.jar和appengine-api-labs-1.6.0.jar),但谷歌Eclipse插件(GPE)复制了十几个jar,就像用于JDO、缓存等的jar,我真的不需要这些jar(以保持部署和版本控制的轻松性). 如果我从WEB-INF/lib中删除这些内容,GPE会不断抱怨并将它们复制回来 同样的事情已经讨论过了,但它建议编写一个Ant任务来删除那些JAR,我真的不想这么做

在我的
WEB-INF/lib
中,我只需要两个与应用引擎相关的jar(
appengine-api-1.0-sdk-1.6.0.jar
appengine-api-labs-1.6.0.jar
),但谷歌Eclipse插件(GPE)复制了十几个jar,就像用于JDO、缓存等的jar,我真的不需要这些jar(以保持部署和版本控制的轻松性). 如果我从
WEB-INF/lib
中删除这些内容,GPE会不断抱怨并将它们复制回来

同样的事情已经讨论过了,但它建议编写一个Ant任务来删除那些JAR,我真的不想这么做(因为我的项目中没有使用任何Ant build.xml)


有谁有更好的解决办法吗?我更喜欢Netbeans/Maven,但为了简单和官方支持的插件,这里需要使用eclipse。一切都是新安装的。

新的Google Eclipse插件有一个选项,允许您删除Datanucleus JAR。这将删除大约5-6个JAR文件。如果您没有看到下面的屏幕,您应该更新Eclipse版本的Google插件:


部署不是问题,因为当您部署时,SDK会检查本地文件系统中文件的哈希值,将其与Google服务器上的哈希值进行比较,并且只上载已更改的文件。

不幸的是,IMO ant任务是我发现的唯一方法。 您可以按照Ikay的建议取消选中插件配置中的DataNucleus jars,但是

  • 它在我新安装的EclipseJuno+1.7.0GAE中不起作用
  • 我使用Objectify,实际上需要一个JAR(geronimo,不确定是否因为原因1而将其删除)
  • 它不会删除端点jar,这对于gae上的大多数应用程序来说都是巨大而无用的
  • 因此,我最终将所有运行时lib放在一个单独的文件夹中(可以用另一种方式来做,并维护一个排除列表),并编写了一个简单的脚本:

    <target name="pre-deploy">
        <delete dir="deploy" />
        <mkdir dir="deploy" />
        <copy todir="deploy">
            <fileset dir="war"/>
        </copy>
        <delete>
            <fileset dir="deploy/WEB-INF/lib/" includes="*.jar"/>
        </delete>
        <copy todir="deploy/WEB-INF/lib">
            <fileset dir="lib/runtime"/>
        </copy>
        <!-- pack all classes into single jar for faster gae instance startup -->
        <jar destfile="deploy/WEB-INF/lib/myjar.jar" basedir="deploy/WEB-INF/classes" />
        <!-- delete classes (but not properties!) -->
        <delete dir="deploy/WEB-INF/classes/com" />
    </target>
    
    
    
    它也很有用,因为它允许将所有类打包到一个jar中,许多人报告说这可以节省启动时间。部署脚本非常简单:

    <import file="${gae.sdk}/config/user/ant-macros.xml" />
    
    <target name="deploy" depends="pre-deploy">
        <appcfg action="update" war="war" />
    </target>