gpt4 book ai didi

java - 带有 spring boot 的 Swagger 在某些机器上构建时有效,但在其他机器上无效

转载 作者:行者123 更新时间:2023-12-05 07:38:58 25 4
gpt4 key购买 nike

当我在我的机器(Linux、Ubuntu 14、Oracle JDK1.8、Maven 3.5.2)上使用 swagger 构建 spring boot 应用程序时,它运行时带有 swagger 文档。

如果在 Windows 机器上构建,swagger-ui 也可以正常工作。

当我在 Jenkins Build 机器上使用 swagger 构建 spring boot 应用程序时。 (Linux、Ubuntu 16、Oracle JDK1.8、Maven 3.5.2)应用程序运行正常,但 swagger 在 swagger-ui,html 页面给出了 404:

14:01:28.296 [http-nio-30020-exec-1] WARN  org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/api/v2/swagger-ui.html] in DispatcherServlet with name 'dispatcherServlet'

这通过 jenkins 和在命令行上运行的 mvn clean install 发生。

我想不出 Jenkins 机器以不同方式构建它的任何理由,但它似乎是!有什么明显的我错过了吗?我看到其他人有文档是否出现的问题,但我没有看到它在特定机器上构建时工作。

[编辑] 进一步测试表明,在 Ubuntu 14(32 位或 64 位)上全新安装工作正常,而在另一台 Ubuntu16 64 位机器上全新安装 java/maven 则不起作用。

它也适用于全新的 Ubuntu17 安装,但不适用于全新的 Ubuntu16 安装,具有相同的 maven.tar.gz 和 jdk.tar.gz 安装。

如果您解压缩并比较内容,生成的 jar 文件似乎是相同的。但是,如果您将非功能文件重新压缩到一个新的 jar 中,您可以获得一个可以工作的文件。

jar 文件之间的唯一区别是运行 unzip -l .jar 时返回文件的顺序。

所以看起来文件添加到 jar 的顺序很关键。

最佳答案

我假设您有以下两个依赖项:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>

我可以使用 jenkins 或 mvn clean package 构建我的 swagger 应用程序

关于java - 带有 spring boot 的 Swagger 在某些机器上构建时有效,但在其他机器上无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47457682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com