gpt4 book ai didi

java - jetty worker : Install Maven dependencies during build stage only?

转载 作者:行者123 更新时间:2023-11-29 08:40:48 26 4
gpt4 key购买 nike

对 Docker 还是个新手,正在尝试让 Jetty 网络服务在容器内运行。这是我目前的 docker 文件

食谱

FROM maven:3.3-jdk-8-alpine

# Install packages
# To find packages to install see - https://pkgs.alpinelinux.org/packages
RUN apk add --no-cache curl tar bash wget apache-ant
RUN apk info

# Do any Maven configuration
ENV MAVEN_HOME /usr/share/maven
VOLUME "$USER_HOME_DIR/.m2"
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"


# Copy over project source files to the /tmp folder
COPY . /tmp/project
WORKDIR /tmp/project

# Preinstall any Maven depencencies
RUN mvn install -pl '!deb' -DskipTests

# Default command when running the docker image, can be overriden
CMD cd webapp/ && mvn jetty:run

在 docker build 期间,我指定 maven install 来安装项目的所有依赖项,并从源代码为每个模块构建 jar。

然而,当运行 docker 容器时,它仍然会尝试重新安装所有依赖项,然后失败,因为它找不到我的 api.jar 文件

我的项目结构是这样的

项目结构服务

  • 应用程序接口(interface)
  • 图书馆
  • 网络应用
  • pom.xml

错误

The following artifacts could not be resolved: com.foo.service:service-api:jar:1.14-SNAPSHOT

在容器外执行相同的步骤工作正常, jetty 服务启动正常。有什么解决办法吗?

最佳答案

Maven 会定期检查 SNAPSHOT 依赖项的更新 - 默认情况下每天检查一次。但是您可以在 Maven 的 settings.xml 中禁用它。参见 https://stackoverflow.com/a/3942048/2235015有关类似(但相反)案例的答案,请参阅 http://maven.apache.org/ref/3.2.2/maven-settings/settings.html (搜索 updatePolicy)。

settings.xml 中的示例存储库设置:

<repository>
<id>snapshots</id>
<url>http://host/nexus/repos/snapshots</url>
<snapshots>
<updatePolicy>never</updatePolicy>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>

关于java - jetty worker : Install Maven dependencies during build stage only?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40400562/

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