我使用Maven构建了一个简单的Java后端。当我用.jar创建mvn clean install文件时,我可以运行它,一切都很好。
但是,当我将它部署到Docker时,服务器会运行,但是当我进行GET调用时,后端不会看到位于src/main/resousces/中的静态src/main/resousces/文件。
java.io.FileNotFoundException: /src/main/resources/logo.png (No such file or directory)该图像被上传到带有此.gitlab-ci.yml文件的停靠点:
services:
- docker:dind
before_script:
- docker info
maven-build:
stage: build
tags:
- maven3-jdk11
except:
- tags
script:
- mvn deploy -B -U
maven-release:
stage: deploy
tags:
- maven3-jdk11
only:
- tags
script:
- mvn deploy -B -Prelease-profile -Dmaven.javadoc.failOnError=false(这是我第一次与Maven和Docker合作,所以如果我提供的信息不够,请留下评论。)
发布于 2020-05-12 12:45:27
解压jar文件并检查其中是否有.png文件。如果不是,您需要用资源文件夹打包一个jar。如果是,则需要使用类路径指定文件路径。
发布于 2020-05-14 09:23:42
好吧,我用java ClassLoader解决了这个问题。
最初,我按如下方式加载了.png文件:
Image logo = new Image(ImageDataFactory.create("src/main/resources/logo.png"));我把它变成了跟随,现在它就像魅力一样:
ClassLoader classLoader = getClass().getClassLoader();
Image logo = new Image(ImageDataFactory.create(classLoader.getResource("logo.png")));为了提高尤金的声誉,我接受了尤金的回答,他把我推向了正确的方向。
https://stackoverflow.com/questions/61751872
复制相似问题