在我的Dockerfile中,我只想简单地将Maven添加到我的映像中,这个映像已经有了一个适当的Java8版本。如:
RUN apt-get install -y maven当我这样做时,maven的安装带来了Java11,即使我只是想为我已经安装在盒子上的Java8 JDK安装Java8。我希望有一些明显的解决办法,这是干净和简单的。起初,我认为apt-mark hold可能会工作,但我不知道要保存的包的名称。例如,我试过
RUN apt-mark hold default-jdk default-jre \
&& apt-get install -y maven安装Java11似乎非常不友好,如果没有任何开关告诉它安装Java8或不安装Java8,只需相信它已经安装了。
没有这个问题,关于如何在ubuntu上安装maven,有什么想法吗?
发布于 2021-12-11 00:46:08
安装Java11似乎非常不友好,如果没有任何开关告诉它安装Java8,或者不安装Java8,只需相信它已经安装了。
这不是真正的Maven问题。在执行apt-get insall时,还会安装包的依赖项。但是在Maven的情况下,您并不需要使用apt-get来安装它。您可以使用wget下载Maven并将其解压缩。
下面是一个Dockerfile示例:
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映像:
FROM maven:3.8.4-jdk-8
ENTRYPOINT [ "mvn", "--help" ]
``发布于 2021-12-13 04:01:09
现在您的系统上有两个java版本。这本身并不是一个问题。
只需选择要使用的默认版本即可。
sudo update-alternatives --config java发布于 2021-12-10 23:18:43
在我的情况下,我发现可以通过暂停使用以下3个包来阻止Java11的安装:
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保持不变。
https://stackoverflow.com/questions/70311220
复制相似问题