【问题标题】:Deployed spring boot jar file to Docker - how to access and change static resources将spring boot jar文件部署到Docker——如何访问和更改静态资源
【发布时间】:2020-07-31 10:26:19
【问题描述】:

作为一个整体,我对 Spring 和 Web 开发有点陌生。

我的问题是:

当您将 Spring Boot 项目(使用 Maven)构建到 jar 文件中并通过 Docker 部署时,所有内容都在一个 jar 文件中。如果您想编辑某些内容,如何访问您的资源(css、js、图像、html...)?就像在 css 文件中更改某些内容或向 html 页面添加内容一样。甚至可能吗?或者当您需要更改某些内容(在前端)时,您是否必须每次都构建一个新的 jar 文件?另外,当上传一些图像或其他文件时,它们存储在哪里?这些东西让我很困惑,我根本找不到任何相关的书籍或帮助。

感谢您的帮助!

【问题讨论】:

  • 如果你愿意,你可以打开jar文件并编辑资源(css、js、图像......),但不建议这样做,最好在文件,然后重建 jar。
  • 你在哪个平台上?
  • @AnandVaidya 现在是 Win10,但正在慢慢转换到 Linux

标签: java spring spring-boot docker maven


【解决方案1】:

当您打包任何 java 程序时,它只不过是一个 zip 文件。根据它是什么类型的包,你可以将它命名为 Jar 或 War。

Jar == Java archive

War == Web archive

现在,鉴于 jarwar 本质上都是一个 zip 存档,它让您可以像任何其他 zip 文件一样灵活地提取和修改它们。

在 windows 上,我认为像 7zip 这样的软件可以让你内联更新 jar。我已经做过很多次了,尤其是当我想在云机器上单独更改application.properties,并且不需要更改其他代码时。在这种情况下,构建整个 jar 并将其再次传输到云机器可能会很耗时。所以我只需提取内容,更新我想要的任何内容,然后重新压缩包。

Here is the commands you can use -

jar xf jar-file

这应该将文件提取到一个目录中。

SO thread 将指导您创建 jar 文件。

jar cf myJar.jar ** 之类的东西应该足以生成一个 jar 文件 IMO,但语法可能会有所不同。

【讨论】:

    【解决方案2】:

    jar 文件实际上只是一个 zip 文件,其中包含应用程序的所有文件和类,因此从技术上讲,您可以像任何其他 zip 存档一样更改其中的文件。最佳做法是每次需要更改时使用 Maven 或 Gradle 从源代码构建 jar 文件。

    最好使用 Git 将源代码保存在版本控制中,并在 git 存储库中标记每个构建 - 这样您就可以通过查看构建时 git 中的内容轻松跟踪对 jar 文件的更改.

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 2021-11-03
      • 2014-04-20
      • 2014-11-10
      • 2016-11-04
      • 1970-01-01
      • 2021-01-16
      • 2016-10-01
      • 2017-01-04
      相关资源
      最近更新 更多