当前位置: 首页 > 知识库问答 >
问题:

对接多模块Maven应用程序?

公冶京
2023-03-14

我有一个Maven Java应用程序,我正在尝试进行对接。到目前为止,我有以下dockerfile,是我从这个答案中复制的。

#
# Build stage
#
FROM maven:3.6.0-jdk-11-slim AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean install

EXPOSE 8080 9990

COPY --from=build /usr/src/app/target/helloworld-1.0.0-SNAPSHOT.jar /opt/jboss/jboss-eap-6.2/standalone/deployments/

如果我的应用程序是一个单模块项目,这将是很好的,但是因为它是多模块的,所以我假设我不能仅仅使用copy src/home/app/src

#
# Build stage
#
FROM maven:3.6.0-jdk-11-slim AS build
COPY module1 /home/app
COPY module2 /home/app
COPY module3  /home/app
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean install

EXPOSE 8080 9990
    
COPY --from=build /usr/src/app/target/helloworld-1.0.0-SNAPSHOT.jar /opt/jboss/jboss-eap-6.2/standalone/deployments/

但是,这会在MVN clean Install阶段出错:

[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for myapp:21.01-SNAPSHOT: Could not find artifact jee6:pom:1.0.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 8, column 10

注意,jee6:pom:1.0.1-snapshot来自我的本地m2文件夹。

共有1个答案

蓝夕
2023-03-14

我将只使用maven jib插件而不是手工创建DockerFile。更容易,它应该与多模块项目也工作,我认为

 类似资料:
  • 我有一个Spring boot应用程序,并使用spotify插件对我的应用程序进行Dockerize。所以,我将有一个类似下面的Dockerfile。 我遇到了JIB,它看起来很酷。但是,努力让它工作。 我在下面添加了pom条目。 mvn编译jib:构建 我明白了。 [INFO]构建依赖层...[INFO]构建类层...[INFO]构建资源层... 当我运行docker映像时,它说Jar文件不存在

  • 嗨,我正在使用maven多模块项目和google cloudendpoint作为api管理,我能够成功地使用appengine devserver运行应用程序,但当我将它部署到appengine时,它显示如下错误。

  • 我有一个包含多个应用程序(不同但密切相关的微服务)的解决方案,这些应用程序共享通用且相当复杂的代码。该项目使用Maven,当前设置为: 我的问题是我想使用开发模式来获取更改,但我无法使其工作。对于单个Quarkus应用程序,它受到支持,并且可以从根文件夹使用quarkus:dev进行构建。对于两个Quarkus应用程序,不清楚启动的是哪一个。 我可以使用Maven的选项来选择我想要启动的那个,但是

  • 问题内容: 我有一个由几个模块组成的项目。 我正在尝试使用SonarQube进行分析。 我在每个模块中都包含了Sonar Maven插件作为依赖项: 然后我使用以下命令运行Maven: mvn clean验证声纳:声纳 Maven成功完成,并且可以看到Sonar分析,但是当我打开Sonar UI时,模块在项目中不可见。 然而… 如果我从单个模块目录运行Maven命令,则在项目中可见。 感觉我缺少一

  • 我创建了一个具有以下结构的GWT Maven多模块项目。 核心模块[包含活动、演示者、共享资源]核心。gwt。带入口点的xml 果心gwt。xml 桌面模块[包含具有桌面特定视图的桌面模块]桌面。gwt。带入口点的xml desktop.gwt.xml Tablet Module[包含具有Tablet特定视图的Tablet模块]Tablet。gwt。带入口点的xml 移动模块[包含具有移动特定视图

  • null null 所以当我在Intellij中运行项目时,它启动了,我可以访问主模块控制器中定义的所有URL。但不是子模块控制器中的...看起来只加载了主模块。 下面是我的父pom.xml: 这里是我的主模块pom.xml: null