有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个Java项目,既有服务器包也有客户端包。此外,我还有一个图书馆套餐

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

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


共 (4) 个答案

  1. # 1 楼答案

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

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

    注: Eclipse只是将源文件编译成它们各自的类文件,然后放入bin文件夹,或者为项目属性设置输出文件夹的任何地方。默认情况下,它不会创建jar文件

    如果想创建jar文件,最好的方法是使用ant之类的工具。然后你就可以创建任何你需要的罐子,并按照你喜欢的方式组织它

    这里有一个链接供参考: Create Multiple JARs from Eclipse Project

  2. # 2 楼答案

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

  3. # 3 楼答案

    ... the problem is that when I export, everything gets added to the Jar file.

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

    So I suppose I need two different projects, client and server, but what about the shared library files? What do I do about them? Do I actually need three different projects? It will become a little unwieldy as everything is actually related and I would like to keep them together.

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

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

    结果是,在一次签出之后,您就拥有了所有主要位置、构建脚本、Netbeans和Eclipse启动配置的完整包。因此,您可以在大约五分钟内从一台空机器(只有一个IDE)变成一个工作的客户机-服务器组合

    因此,双击服务器图标,启动服务器进程,运行特定于站点的配置。双击客户机,然后启动一个客户机进程,该进程可以连接到您刚刚创建的服务器

    妙语:除非有很好的理由,否则不要让开发和部署变得更困难在我们的例子中,我们为每个安装提供完全相同的软件包,这样更简单、更便宜、更容易维护

  4. # 4 楼答案

    I use eclipse and have put everything in a single java project, each section server,client and library are in separate packages, the problem is that when I export, everything gets added to the Jar file.

    这就是我感兴趣的部分,为什么要导出既有客户端又有服务器的东西从客户机-服务器的角度来看,它们将单独分发

    Do I actually need three different projects? It will become a little unwieldy as everything is actually related and I would like to keep them together.

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

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

    结束语:

    对于最小阻抗路径,我认为您应该将客户机和服务器部件分为两个项目,并对共享库做同样的考虑,以防您是从源代码(即,不是第三方JAR)编译它

    因此,在一天结束时,你将从编译过程中获得3个“产品”,并在它们所属的地方分发它们,同时在分发两侧复制“库”