【问题标题】:What is the proper way of maintaining a java module that includes java code, JSP pages, HTML, CSS, JS, and images?维护包含 java 代码、JSP 页面、HTML、CSS、JS 和图像的 java 模块的正确方法是什么?
【发布时间】:2021-06-15 08:40:38
【问题描述】:

我非常了解包管理器和版本控制软件。但是,虽然我已经阅读了有关这些主题的文档和书籍,但我的实践经验非常有限。因此,如果问题本身没有意义,我深表歉意。

维护一个独立的包与对应用程序进行版本控制对我来说都很清楚。但是,我希望创建一个“基础”应用程序,同事可以稍后复制、自定义,然后将其作为新应用程序签入,从而保持在更新时从基础应用程序中提取更新的能力。

我的理论理解是,这可以使用分支来完成,但感觉很滥用,因为新应用程序是独立的,而不是真正要合并的分支。另一方面,虽然将应用程序做成一个子包的包对我来说似乎很公平,但我从未见过以这种方式共享 java 代码,并将应用程序分解成一个前端文件包和一组JAR 文件感觉无处不在。

【问题讨论】:

  • 将您的基础模块打包成 JAR 文件,将其上传到存储库(如 Nexus 或您公司拥有的东西),然后使用 Maven 或 Gradle 在其他项目中依赖它。

标签: java versioning package-managers


【解决方案1】:

你应该把你的问题划分为更小的问题(divide et impera),特别是尝试理解 MVC(模型视图控制器)模式(见这里https://it.wikipedia.org/wiki/Model-view-controller

你可以用这个parttern做什么?你可以:

  • 模型:定义您的 dto / 接口并将其打包到一个模块中
  • 视图:定义您的页面/样式并将其打包到一个模块中
  • 控制器:定义您的控制器并将其打包到一个模块中

现在,看起来很抽象,但是很简单,你可以这样做:

  • 使用 maven/gradle 定义一个主项目
  • 为模型/视图/控制器定义一个子项目
  • 编写代码
  • 版本并将您的子项目发布到公司工件存储库中(例如 apache archiva)

这样做你可以:

  • 只有一个代码库
  • 不需要分支
  • 同事只需要模型?他们只添加依赖项,其他部分也是如此

问题:

  • 您正在构建一个 web 应用程序,并使用 MVC 模式将其水平“切片”,而不是垂直。所以问问自己:我需要分享我的所有工作,还是只分享其中的一部分,例如 Web 组件?
  • 如果是,请告知微前端https://micro-frontends.org/
  • 复杂性:您能否为使用您的工件的人提供支持?例如新功能、错误修正?或者“没有时间做这个?”
  • 依赖项:您的 web 应用程序依赖于外部系统(也称为数据库、rest/soap 服务等)吗?
  • 文档:如果您想共享可用组件,则需要适当的文档,否则人们会向您索要一切

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2013-04-25
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    相关资源
    最近更新 更多