我想使用Heroku部署一个Spring应用程序,它是多模块Maven项目的一部分,它引用了其中一个子模块:
$ ls .
api/
models/
Procfile
pom.xml主父pom.xml具有以下模块:
<modules>
<module>models</module>
<module>api</module>
</modules>api项目使用以下方法引用models模块:
<dependency>
<groupId>com.test</groupId>
<artifactId>models</artifactId>
<version>1.0</version>
</dependency>Procfile的内容如下:
web: java -Dserver.port=$PORT -jar $PATH_TO_JAR现在,当我执行git push heroku master命令时,我会收到以下错误:
remote: [ERROR] Failed to execute goal on project api:
Could not resolve dependencies for project com.test:api:jar:1.0:
Could not find artifact com.test:models:jar:1.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]如何正确解决本地子模块依赖关系?
发布于 2022-03-19 17:41:34
Heroku从零开始构建Maven反应堆(基于git push),它无法找到api依赖项,因为它既不在本地Maven中,也不在Maven中心。
在本地,您可以首先对子模块进行mvn install,或者使用system作用域。
如果使用Heroku码头部署应用程序,则可以保持相同的体系结构。
Dockerfile包了本地创建的SpringBoot jar文件:
FROM adoptopenjdk/openjdk11:latest
RUN mkdir -p /software
ADD target/mySpringBoot.jar /software/mySpringBoot.jar
CMD java -Dserver.port=$PORT $JAVA_OPTS -jar /software/mySpringBoot.jar创建SpringBoot应用程序jar文件,然后将图像推送到Heroku
# build project locally (ie Springboot jar file)
mvn clean package
# build/push to Docker
heroku container:push web -a myapp
heroku container:release web -a myapp不要忘记登录Heroku注册表(heroku container:login),只需要登录一次。
https://stackoverflow.com/questions/71520299
复制相似问题