首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用‘`apt get Installing’安装maven用Java8覆盖Java11

使用‘`apt get Installing’安装maven用Java8覆盖Java11
EN

Stack Overflow用户
提问于 2021-12-10 22:56:43
回答 3查看 496关注 0票数 0

在我的Dockerfile中,我只想简单地将Maven添加到我的映像中,这个映像已经有了一个适当的Java8版本。如:

代码语言:javascript
运行
复制
RUN apt-get install -y maven

当我这样做时,maven的安装带来了Java11,即使我只是想为我已经安装在盒子上的Java8 JDK安装Java8。我希望有一些明显的解决办法,这是干净和简单的。起初,我认为apt-mark hold可能会工作,但我不知道要保存的包的名称。例如,我试过

代码语言:javascript
运行
复制
RUN  apt-mark hold default-jdk default-jre \
  && apt-get install -y maven

安装Java11似乎非常不友好,如果没有任何开关告诉它安装Java8或不安装Java8,只需相信它已经安装了。

没有这个问题,关于如何在ubuntu上安装maven,有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-11 00:46:08

安装Java11似乎非常不友好,如果没有任何开关告诉它安装Java8,或者不安装Java8,只需相信它已经安装了。

这不是真正的Maven问题。在执行apt-get insall时,还会安装包的依赖项。但是在Maven的情况下,您并不需要使用apt-get来安装它。您可以使用wget下载Maven并将其解压缩。

下面是一个Dockerfile示例:

代码语言:javascript
运行
复制
FROM adoptopenjdk/openjdk8:debian-slim

RUN apt-get update && apt-get install -y wget && \
    wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \
    tar -xvzf apache-maven-3.8.4-bin.tar.gz && \
    rm apache-maven-3.8.4-bin.tar.gz

ENTRYPOINT [ "/apache-maven-3.8.4/bin/mvn", "--help" ]`

或者您可以简单地使用Java 8的Maven映像:

代码语言:javascript
运行
复制
FROM maven:3.8.4-jdk-8

ENTRYPOINT [ "mvn", "--help" ]
``
票数 1
EN

Stack Overflow用户

发布于 2021-12-13 04:01:09

现在您的系统上有两个java版本。这本身并不是一个问题。

只需选择要使用的默认版本即可。

代码语言:javascript
运行
复制
sudo update-alternatives --config java

详情请参见https://askubuntu.com/q/1288175

票数 1
EN

Stack Overflow用户

发布于 2021-12-10 23:18:43

在我的情况下,我发现可以通过暂停使用以下3个包来阻止Java11的安装:

代码语言:javascript
运行
复制
RUN apt-mark hold default-jdk  \
  && apt-mark hold default-jre \
  && apt-mark hold default-jre-headless \
  && apt-get install -y maven

至少对于我的情况(安装在Ubuntu 20映像上的Ubuntu 20)来说,将这些包标记为暂停使maven安装从更新到11保持不变。

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

https://stackoverflow.com/questions/70311220

复制
相关文章

相似问题

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