【问题标题】:Using one Java source file in two different projects, both under development在两个不同的项目中使用一个 Java 源文件,这两个项目都在开发中
【发布时间】:2010-11-15 22:51:00
【问题描述】:

我正在开发一个 Spring(用于服务器端 Web 开发的 Java 框架)Web 应用程序,它将通过 JSON 对象响应另一个客户端 Java 应用程序(使用套接字通信)。同时,我正在处理服务器端和客户端 Java 应用程序。

问题是我有一堆文件(比如,一个 Json 变量接口)在两个项目中都使用。目前,我在两个项目的不同包中拥有该接口的重复副本。但这会导致不一致,因为每当我需要更改界面时,我都必须更新这两个文件。

有没有人有一个巧妙的解决方案?

谢谢

【问题讨论】:

    标签: java spring architecture client-server code-sharing


    【解决方案1】:

    您应该在包级别而不是文件级别处理您的共享代码。

    您应该创建一个接口定义包,供架构的客户端和服务器端使用,并且每当该包更改时,双方都必须相应更改。

    编辑:

    我没有明确说明,但 zellus 关于将公共代码作为 jar 导入的建议是一个很好的建议。

    【讨论】:

    • 这可能是一个愚蠢的问题:我应该在这些项目的 src 目录中创建这个包吗?那么如果我将服务器端和客户端代码移动到不同的机器上会发生什么?
    • 无论你如何管理你的源代码,路径都应该是相对的而不是绝对的,所以如果你更换机器也不重要。
    • 嗯,使用相对路径是对的。我的意思是,由于这两个项目应该在不同的机器上运行,当我将每个项目移动到他们自己的机器上时,共享包会发生什么?然后我必须将包复制到服务器和客户端机器上,对吗?(假设我希望在将项目移动到不同机器时仍然能够编辑源代码)
    • @green-i - 将源代码保存在一台机器上(例如您的开发箱),并将编译后的代码(例如 JAR 文件)复制到您需要运行它的机器上。您不需要在两台或多台机器上编辑源代码。
    【解决方案2】:

    您可以为常用的 JSON 代码创建一个单独的项目。使用颠覆, svn:externals 允许在源代码级别进行巧妙的集成。将公共代码作为 jar 文件导入是另一种方法。

    【讨论】:

      【解决方案3】:

      如果您使用的是 maven,您可以创建一个本地 maven 项目,其中包含您在不同项目中可能需要的所有类,并将此依赖项添加到需要这些类的 pom.xml。

      【讨论】:

        猜你喜欢
        • 2014-02-19
        • 2015-03-18
        • 1970-01-01
        • 2011-10-12
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多