服务器和客户端软件包的Java项目中的共享资源

时间:2010-07-28 12:06:27

标签: java

我有一个包含服务器和客户端软件包的Java项目。另外我有一个库包。

我使用eclipse并将所有内容放在一个Java项目中,每个部分服务器,客户端和库都在不同的包中,问题是当我导出时,所有内容都会添加到Jar文件中。

所以我想我需要两个不同的项目,客户端和服务器,但共享库文件呢?我该怎么办?我真的需要三个不同的项目吗?它会变得有点笨拙,因为一切都是相关的,我想把它们放在一起。

4 个答案:

答案 0 :(得分:4)

  

我使用eclipse并放置了所有东西   在一个java项目中,每个部分   服务器,客户端和库都在   单独的包,问题是   当我导出时,一切都会被添加   到Jar文件。

这是引起我兴趣的部分,为什么要导出同时包含客户端和服务器的东西? 从客户端 - 服务器角度来看,它们将单独分发

  

我真的需要三个不同的   项目?它会变得有点   实际上一切都很笨拙   相关的,我想保留它们   在一起。

由于 IDE现在可以管理项目/模块之间的依赖关系,我认为它看起来并不像你想象的那么糟糕。例如,您可以同时处理服务器代码,并使用客户端代码中的类和接口,并引用服务器项目生成的JAR。

我还想补充一点,“项目”也不是最广泛的代码封装,还有一个“工作区”可以包含许多相关的“项目”。其他IDE使用其他措辞,如“模块”而不是“项目”。

结束思路:

对于阻抗最小的路径,我认为您应该将客户端和服务器部分分成两个项目,并且如果您从源代码编译它,请对共享库执行相同的思考,即:不是第三方JAR。

因此,在一天结束时,您将从编译过程中获得3个“产品”并将它们分配到它们所属的位置,并在两个分发方复制“库”。

答案 1 :(得分:2)

您可以为共享代码创建一个单独的项目,并为其创建一个库(即jar文件)。然后,您的客户端和服务器项目都可以使用共享库。

更好的是,您可以在将来将此共享库用于其他项目。

注意: Eclipse只是将源文件编译到各自的类文件中,然后放在bin文件夹中,或者为项目属性设置输出文件夹的位置。默认情况下,它不会创建jar文件。

如果要创建jar文件,最好的方法是使用像ant这样的工具。然后你就可以创建你需要的任何罐子,然后根据自己的喜好构建它。

以下是供参考的链接: Create Multiple JARs from Eclipse Project

答案 2 :(得分:1)

您可以为客户端和服务器端创建单独的项目,可以在类路径定义中附加共享包。

答案 3 :(得分:0)

  

...问题在于我出口时   一切都被添加到Jar文件中。

这真的是个问题吗?也许共享代码是资产而不是负债。也许你应该在担心部署问题之前优化开发人员问题,在这里,我们已经决定不是问题。

  

所以我想我需要两个不同的东西   项目,客户端和服务器,但是什么   关于共享库文件?什么   我会这样做吗?我真的需要吗?   三个不同的项目?它会   像一切都变得有点笨拙   实际上是相关的,我想   让他们在一起。

我们在这里有类似的情况,并选择接受共享代码。每个人都获得相同的代码,并选择启动所需的模式和配置。

如果您查看我们的大型系统(超过5000个类),您将获得服务器代码(两种主要风格),客户端(另外两种类型),共享内容(第三方jar,可视资产)等)和特定于站点的材料(配置文件,启动脚本和示例数据)。

结果是,在一次结账后,您拥有我们所有主要位置的完整包,构建脚本以及Netbeans和Eclipse启动配置。因此,您可以在大约五分钟内从空机器(仅使用IDE)转到正常工作的客户端 - 服务器组合。

因此,双击服务器图标,然后启动服务器进程,运行特定于站点的配置。双击客户端,然后启动一个已准备好连接到刚刚建立的服务器的客户端进程。

Punchline:除非有充分的理由,否则不要让开发和部署更加困难。在我们的案例中,更简单,更便宜,更容易维护我们为每个安装提供的情况完全相同的包裹。