Installing Maven With OpenJDK 11, Without Pulling OpenJDK 1.8

Home » CentOS » Installing Maven With OpenJDK 11, Without Pulling OpenJDK 1.8
CentOS 1 Comment

Hello,

I am trying to create a container image which will build Java software with Maven and Java 11 (rather focussing on CentOS 8 here).

When installing ‘maven’ with yum, ‘java-1.8.0-openjdk-devel’ is installed as a dependency. If one then installs ‘java-11-openjdk-devel’, and use the update-alternatives command for java and javac, everything works fine and Maven uses Java 11 for the build.

But I would like to avoid shipping OpenJDK 1.8 with the image, since it would uselessly double its size. An approach would be to install Maven manually, but it feels better to use the provided package.

Looking at the spec file, I understand that the ‘maven’ package requires
‘java-devel’ without explicitly specifying a version. Is there some way (configuration, yum option, alternative, etc.) to make OpenJDK 11 satisfying this dependency?
Could the new modules / app stream approach of CentOS 8 help here?

This is of course a more general RPM / yum question, but I suspect that the Java use case is a recurring one, as many of us are currently upgrading from 1.8 to 11.

Thanks in advance for hints, or telling me that there is no way to achieve this,

Mathieu

One thought on - Installing Maven With OpenJDK 11, Without Pulling OpenJDK 1.8

  • Well, java-11-openjdk-devel only provides ‘java-11-devel’, so it can’t satisfy the ‘java-devel’ dependency. It does seem like it would be possible to produce a maven module and/or stream that was built with Java 11 and requires it. You could also create a shim rpm that required java-11-devel and provided java-devel.

    I’ll also note that maven.spec has:

    # Theoretically Maven might be usable with just JRE, but typical Maven
    # workflow requires full JDK, so we recommend it here.
    %{?fedora:Recommends}%{!?fedora:Requires}: java-devel

    Which wasn’t updated for RHEL8 (which support weak dependencies). I
    would suggest filing a bug against RHEL8 to get them to fix that. Then you could simply disable installing “recommends” by default.