我应该如何构建我的项目以在Android客户端应用程序和JSP服务器应用程序之间共享类?

时间:2011-01-16 16:16:34

标签: java android version-control

我正在构建一个需要访问Web服务的Android应用程序(作为Eclipse项目)。我们将从服务中将数据作为JSON序列化类发送,因此我们希望在Android应用程序和服务器应用程序之间共享一些类。我们目前认为我们需要这样做的方式是使用3个文件夹构建我们的Git存储库。一个用于客户端,一个用于服务器,一个用于共享库。

但在那时我们无法弄清楚如何创建共享代码。看起来我们可以将所有.java文件放到一个文件夹中,然后从其他项目创建一个指向该文件夹的相对链接,但这是一个很好的方法吗?

我们发现的另一种可能性是在Eclipse中创建另一个项目,然后在客户端项目中包含库项目。但是我们遇到了一个问题。我们如何使服务器和Android都可以使用该库?如果我在Eclipse中创建一个新的Java项目,我必须选择一个JRE来构建,但Dalvik不是一个选项,即使它是如何使用桌面VM的库,如果库是为Dalvik编译的?

3 个答案:

答案 0 :(得分:5)

我会使用3个项目:

  • 服务器
  • 共享
  • client(android)

并在服务器和客户端中包含共享作为项目依赖项。如果你使用ant,你每次更改时都会删除server / lib和client / lib中的shared.jar,如果使用maven则它是一个依赖项(可能使用Ant + Ivy它也是一个依赖项)。在这种情况下,将Nexus视为存储库位置。

答案 1 :(得分:3)

您实际上不需要为共享类创建单独的Eclipse项目。您可以在其他两个项目的磁盘层次结构之外创建一个“公共源文件夹”。对于服务器和客户端项目:在“属性/ Java构建路径/源”中,将“链接源”添加到新文件夹。 (也许这就是你所说的'相对链接')。将此公共源文件夹添加到Ant构建文件很容易。

答案 2 :(得分:0)

您可以将类/ JAR的路径添加到服务器的运行时类路径中。

由于目前还不清楚你正在使用哪一个,这里只是一个基于Apache Tomcat的通用答案。

  • 打开/conf/catalina.properties文件。
  • 编辑shared.loader条目以包含这些类或JAR文件的包根的路径。

    E.g。

    shared.loader = /path/to/classes
    

    shared.loader = /path/to/specific.jar
    

    shared.loader = /path/to/*.jar
    

    您甚至可以指定以逗号分隔的多个路径。