我正在构建一个需要访问Web服务的Android应用程序(作为Eclipse项目)。我们将从服务中将数据作为JSON序列化类发送,因此我们希望在Android应用程序和服务器应用程序之间共享一些类。我们目前认为我们需要这样做的方式是使用3个文件夹构建我们的Git存储库。一个用于客户端,一个用于服务器,一个用于共享库。
但在那时我们无法弄清楚如何创建共享代码。看起来我们可以将所有.java文件放到一个文件夹中,然后从其他项目创建一个指向该文件夹的相对链接,但这是一个很好的方法吗?
我们发现的另一种可能性是在Eclipse中创建另一个项目,然后在客户端项目中包含库项目。但是我们遇到了一个问题。我们如何使服务器和Android都可以使用该库?如果我在Eclipse中创建一个新的Java项目,我必须选择一个JRE来构建,但Dalvik不是一个选项,即使它是如何使用桌面VM的库,如果库是为Dalvik编译的?
答案 0 :(得分:5)
我会使用3个项目:
并在服务器和客户端中包含共享作为项目依赖项。如果你使用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
您甚至可以指定以逗号分隔的多个路径。