【问题标题】:Shared resources in a Java project for server and client packages用于服务器和客户端包的 Java 项目中的共享资源
【发布时间】:2010-07-28 20:50:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: java


    【解决方案1】:

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

    这是让我感兴趣的部分,为什么要导出同时具有客户端和服务器的东西? 从客户端-服务器的角度来看,它们将分开分发

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

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

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

    结束的想法:

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

    因此,最终您将获得 3 个来自编译过程的“产品”,并将它们分发到它们所属的位置,“库”在两个分发端都重复。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

      • 嗨,我刚刚更新了一些问题来解决这个问题。有没有办法将全部内容组织到一个相关的项目中,但又可以将部分代码导出到 jar 中?
      • 如果要构建jar文件,一种方法是使用ant之类的工具。请参阅我的最新编辑。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        ...问题是当我导出时, 一切都被添加到 Jar 文件中。

        这真的有问题吗?也许共享代码是一种资产而不是一种负债。也许您应该先优化开发人员问题,然后再担心部署问题,我们已经确定这些问题毕竟不是问题。

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

        我们这里也有类似的情况,选择采用共享代码。每个人都获得相同的代码并选择他们需要启动的模式和配置。

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

        结果是,在一次结帐后,您就拥有了我们所有主要位置、构建脚本以及 Netbeans 和 Eclipse 启动配置的完整包。因此,您可以在大约 5 分钟内从一台空机器(仅使用一个 IDE)转变为有效的客户端-服务器组合。

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

        要点:除非有充分的理由,否则不要让自己的开发和部署更加困难。在我们的案例中,维护我们为每个安装都提供了完全相同的包。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-03-22
          • 2018-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-06
          相关资源
          最近更新 更多