我有一个服务器应用程序和两个基于Swing的客户端应用程序.我们正在eclipse中开发它们,每个都有一个单独的项目.
许多课程都是共享的.例如,该my.server包具有服务器和客户端的一些类,而其他类仅用于服务器.虽然我更喜欢将它们放在同一个包中,因为它们密切相关,而且其中一些依赖于包的可见性,我不想分发应用程序不需要的类,因为它不仅会使文件大小膨胀,而且这将是一个安全风险.
目前,每个服务器和客户端都有相同的罐子,这是一团糟.理想情况下,我想基于依赖关系自动创建jar,如下所示.
服务器:
客户1:
客户2:
我意识到你可以使用ant手动完成这项工作,但这将是一次维护灾难.是否有一个工具可以自动处理这种依赖?
关于构建应用程序的最佳实践之一是每个项目都有一个 jar。
例如,Maven 使用此作为默认值。你可以欺骗它做其他事情,但最好加入他们而不是“战斗”他们。
http://maven.apache.org/guides/mini/guide-using-one-source-directory.html
http://www.sonatype.com/people/2010/01/how-to-create-two-jars -来自一个项目和为什么你不应该/
因此,在您的情况下,您应该创建 6 个项目:Server、Client1、Client2、ServerClient1Common、ServerClient2Common、ClientCommon
为了选择所需的类,我认为没有工具,也许您应该更好地了解常用功能是什么。创建 Common 项目,并将它们添加到构建路径 - 依赖项中。然后开始将您的类移至 Common 项目中,将它们保留在同一个包中。
例如,创建ServerClient1Common项目。
对于 Client1,转到配置构建路径 -> 项目。添加ServerClient1Common。删除对服务器项目的所有引用。
对于服务器,请转到配置构建路径 -> 项目。添加ServerClient1Common。删除对 Client1 项目的所有引用。
您现在应该有很多缺失的类/导入。尝试一一解决。
最后,您应该能够编译 3 个项目并获得您提到的 jar。
PS:其他策略(例如具有不同构建目标的一个超级项目,或具有缠绕的 ant/maven 构建器的 3 个项目)则更加混乱。也许有一个例外 - 另一种拆分类的方法,但我不知道它是否适用于您:client1.jar、client1-interface.jar、client2.jar、client2-interface.jar、server.jar、server-接口.jar。这样您就可以使用 3 个项目,每个项目都有两个目标 jar。要运行 client2.jar,您将需要 server-interface.jar
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |