Git 子模块有多好?

发布于 2025-01-06 06:49:48 字数 965 浏览 1 评论 0原文

我们有一个与 Scala 后端(使用 Artifactory 维护)集成的 jRuby 前端(使用 Git 维护)。后端 JAR 文件位于 /lib/jars 中。

截至目前,每当 JAR 文件更新时,我们都会下载该 JAR 文件并将其复制到 /lib/jars。我们不会将 JAR 文件添加到 Git(空间、速度等),因此我们无法跟踪哪个 JAR 文件与特定的前端提交一起进行。

我们希望实现如下,

  1. 前端在 v1.1,后端在 v1
  2. 前端在 v1.1,后端转到 v2
  3. 前端现在在 v1.2(强制用户更新 JAR 文件),后端在 v2
  4. 前端转到 v2 .2,后端为 v2
  5. 前端为 v2.2,后端转到 v3
  6. 前端现在为 v2.3(强制用户更新 JAR 文件),后端为

v3更新了,有没有办法告诉前端开发人员后端已经更新了,需要做一些类似“git pull”的事情来获取后端开发人员推送到Artifactory中的最新JAR文件?

可能的解决方案

==========================

  1. 后端开发者构建开发者并推送到Artifactory

  2. 该构建过程还会更新前端应用程序中 config/jars.rb 中 JAR 文件的版本号。

  3. 如果 config/jars.rb 中有更改,前端 Git pull 会下载最新的 JAR 文件(但不会将此 JAR 文件添加到提交中)。

==========================

** 最终,问题在于跟踪 JAR 文件的哪个版本进入特定的前端提交而不存储该版本前端存储库中的 JAR 文件(因为它已存在于 Artifactory 中)**

Git 子模块在这种情况下可以工作吗?有什么建议吗?

We have a jRuby frontend (maintained using Git) integrated with a Scala backend (maintained using Artifactory). The backend JAR files are located in /lib/jars.

As of now, whenever a JAR file is updated, we download that JAR file and copy it to /lib/jars. We don't add the JAR file to Git (space, speed, etc.) and so we cannot track which JAR file went with a particular frontend commit.

We want to achieve it as follows,

  1. Frontend at v1.1, backend at v1
  2. Frontend at v1.1, backend goes to v2
  3. Frontend now at v1.2 (force user to update the JAR file), backend at v2
  4. Frontend goes to v2.2, backend at v2
  5. Frontend at v2.2, backend goes to v3
  6. Frontend now at v2.3 (force the user to update the JAR file), backend at v3

Whenever the backend is updated, is there a way to tell the frontend developer that the backend has been updated, and need to do something like "git pull" to get the latest JAR file that was pushed by the backend developer into Artifactory?

Possible Solution

==========================

  1. Backend developer builds developer and pushes to Artifactory

  2. That build process also updates the version number of the JAR file in config/jars.rb in the frontend application.

  3. Frontend Git pull downloads the latest JAR file (but it does not add this JAR file to the commit) if there is a change in config/jars.rb.

==========================

** Ultimately, the issue is with tracking which version of the JAR file went in a particular frontend commit without storing that JAR file in the frontend repository (since it already exists in Artifactory)**

Does a Git submodule work in this case? Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倒带 2025-01-13 06:49:48

据我了解您的问题,Artifactory 的构建集成功能应该可以完成这项工作。它将允许您将每个构建的 jar 追溯到触发构建的 git 提交。

As I understood your question, Artifactory's Build Integration feature should do the job. It will allow you to trace each built jar back to the git commit which triggered the build.

生来就爱笑 2025-01-13 06:49:48

您可以编写一个简单的 Artifactory 插件 来拦截 afterCreate() 事件使用新部署的后端 jar 的引用更新前端配置。插件是 Artifactory Pro 的一部分。

You can write a simple Artifactory plugin that intercepts the afterCreate() event to update the frontend config with references to newly deployed backend jars. Plugins are part of Artifactory Pro.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文