我的appengine-api-1.0-sdk-1.6.0.jar
只需要两个与app引擎相关的jar(appengine-api-labs-1.6.0.jar
和WEB-INF/lib
),但是Eclipse插件(GPE)可以复制十几个罐子用于JDO,缓存等我真的不需要(保持部署和版本控制光)。如果我从WEB-INF/lib
删除了那些,GPE会继续抱怨并将其复制回来。
同样的事情已经讨论earlier但它建议编写一个Ant任务来删除那些我真的不想做的jar(因为我的项目中没有使用任何ant build.xml)。 / p>
有没有人有更好的解决方案?我更像是Netbeans / Maven的人,但为了简单起见,需要在这里使用eclipse并正式支持插件。一切都是新装的。
答案 0 :(得分:3)
Eclipse的新Google插件有一个选项,允许您删除Datanucleus JAR。这将删除大约5-6个JAR文件。如果您没有看到下面的屏幕,则应更新您的Google Plugin for Eclipse版本:
部署不是问题,因为在部署时,SDK会检查本地文件系统中文件的哈希值,将这些文件与Google服务器上的哈希值进行比较,并仅上传已更改的文件。
答案 1 :(得分:0)
不幸的是,IMO ant任务是我发现这样做的唯一方法。 您可以像Ikay建议的那样取消选中插件配置中的datanucleous jar,但
所以我最终将所有运行时库放在一个单独的文件夹中(可以反过来做,并维护一个排除列表)并编写一个简单的脚本:
<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中,许多人报告这些jar可以节省启动时间。部署脚本很简单:
<import file="${gae.sdk}/config/user/ant-macros.xml" />
<target name="deploy" depends="pre-deploy">
<appcfg action="update" war="war" />
</target>