首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Heroku部署Spring应用程序,该应用程序依赖于Maven子模块

使用Heroku部署Spring应用程序,该应用程序依赖于Maven子模块
EN

Stack Overflow用户
提问于 2022-03-17 23:43:25
回答 1查看 67关注 0票数 1

我想使用Heroku部署一个Spring应用程序,它是多模块Maven项目的一部分,它引用了其中一个子模块:

代码语言:javascript
复制
$ ls .
api/
models/
Procfile
pom.xml

主父pom.xml具有以下模块:

代码语言:javascript
复制
<modules>
  <module>models</module>
  <module>api</module>
</modules>

api项目使用以下方法引用models模块:

代码语言:javascript
复制
<dependency>
  <groupId>com.test</groupId>
  <artifactId>models</artifactId>
  <version>1.0</version>
</dependency>

Procfile的内容如下:

代码语言:javascript
复制
web: java -Dserver.port=$PORT -jar $PATH_TO_JAR

现在,当我执行git push heroku master命令时,我会收到以下错误:

代码语言:javascript
复制
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]

如何正确解决本地子模块依赖关系?

EN

回答 1

Stack Overflow用户

发布于 2022-03-19 17:41:34

Heroku从零开始构建Maven反应堆(基于git push),它无法找到api依赖项,因为它既不在本地Maven中,也不在Maven中心。

在本地,您可以首先对子模块进行mvn install,或者使用system作用域。

如果使用Heroku码头部署应用程序,则可以保持相同的体系结构。

Dockerfile包了本地创建的SpringBoot jar文件:

代码语言:javascript
复制
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

代码语言:javascript
复制
# 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),只需要登录一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71520299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档