Google app engine 将工作区项目与AppEngine一起使用
我正在尝试将一个库项目与我的Google AppEngine项目一起用作构建路径上的项目 有没有一种方法可以在不复制整个源代码或制作jar的情况下将其包含在AppEngine项目中Google app engine 将工作区项目与AppEngine一起使用,google-app-engine,google-eclipse-plugin,Google App Engine,Google Eclipse Plugin,我正在尝试将一个库项目与我的Google AppEngine项目一起用作构建路径上的项目 有没有一种方法可以在不复制整个源代码或制作jar的情况下将其包含在AppEngine项目中 我只使用了库的一小部分,所以复制整个jar似乎有些过火,在源代码中查找依赖项以仅获取我使用的部分需要做大量工作。您不会喜欢这个答案,但不会 为了在部署后将库作为依赖项包含在项目中,必须在WEB-INF/lib目录中找到所需的库作为jar。这将要求您根据要使用的库创建一个jar。另一种选择是按照您所说的那样将依赖源拉入
我只使用了库的一小部分,所以复制整个jar似乎有些过火,在源代码中查找依赖项以仅获取我使用的部分需要做大量工作。您不会喜欢这个答案,但不会 为了在部署后将库作为依赖项包含在项目中,必须在
WEB-INF/lib
目录中找到所需的库作为jar。这将要求您根据要使用的库创建一个jar。另一种选择是按照您所说的那样将依赖源拉入您的项目并从那里使用它
在开发过程中,您可以通过执行以下操作使库项目成为应用程序引擎项目的依赖项:
Under Project->Properties->Java Build Path->Projects Tab
select the "Add.." button to add a subproject to your build.
注意:这不会解决在生产环境中运行的问题。我添加了一个ant project builder,它从依赖项目复制类文件。 ant文件驻留在gae项目中,并从引用的项目复制类文件。 这是蚂蚁:
<?xml version="1.0" encoding="UTF-8"?>
<project name="CommonsCopy" default="copy" basedir=".">
<target name="copy">
<copy todir="war/WEB-INF/classes">
<fileset dir="../Commons/bin" includes="**/*.class">
</fileset>
</copy>
</target>
</project>
我将它命名为“commoncopybuilder.xml”,因为它从一个commons项目复制代码
这将在运行项目之前将文件复制到适当的位置。我通过创建库项目是一个“Web片段项目”并将其添加到app engine项目的项目属性中的“部署程序集”来实现这一点 然而,appengine项目似乎无法处理非平凡的依赖结构。在我的例子中,我在一个EAR中有两个应用程序引擎模块,这两个模块都取决于库项目。然而,Google插件仅将库项目与其中一个模块捆绑在一起,尽管配置相同,但从未同时与这两个模块捆绑在一起。显然是个虫子
我的工作是将链接的源文件夹添加到appengine项目中,指向库项目的源文件夹。难看,但它确实有用。是的。。。正如我所想。。。但我还是很喜欢这个答案:-)我花了一点时间才弄明白怎么做(),但结果很好。我把我的作为公共源代码的一部分,并让它从那里复制到依赖项目,因为它似乎不太经常以这种方式运行——只在触及公共代码时运行,而不是每次构建派生项目时运行。奇怪的是,谷歌到目前为止还没有解决这个问题。想要这样做还有其他动机。示例:开发供GAE项目使用的库。您不希望在测试的每个小更改上都创建一个jar。从GAE项目引用库项目也可以解决这个问题。