Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-75671

Selected Java version ignored from Maven / issue with LD_LIBRARY_PATH

XMLWordPrintable

      Hi,

      We are using Alpine Docker image of Jenkins with some minor modifications (add JDK/Maven, see Containerfile).

      It works for Java 11/17. But when we try to select Java 8, Maven try to work with default Java 17.

      A simple item with shell step (item.xml) is good to understand the issue.

      • I am started from a new Jenkins installation (build this image and put it on K8S)
      • configure theses JDKs:

      • and Maven:

      • then create a small item, select JDK8:

      • add a small SH step:

      Result is:

      + env
      + egrep -i 'java|maven|mvn'
      LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
      PATH=/usr/lib/jvm/java-8-openjdk/bin:/usr/lib/jvm/java-8-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      JAVA_HOME=/usr/lib/jvm/java-8-openjdk
      + mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 17.0.15, vendor: Eclipse Adoptium, runtime: /opt/java/openjdk 

      => Maven is ignoring Java version.

      Same item with JDK11 selected will show:

       

      + egrep -i 'java|maven|mvn'
      + env
      LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
      PATH=/usr/lib/jvm/java-11-openjdk/bin:/usr/lib/jvm/java-11-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      + mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 11.0.27, vendor: Alpine, runtime: /usr/lib/jvm/java-11-openjdk 

       

      => This time, Java is kept.

      Inside the container:

      I tried the same thing inside the container:

       

      $ PATH=/usr/lib/jvm/java-8-openjdk/bin:/usr/lib/jvm/java-8-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      $ JAVA_HOME=/usr/lib/jvm/java-8-openjdk
      $ mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 1.8.0_442, vendor: IcedTea, runtime: /usr/lib/jvm/java-1.8-openjdk/jre 

      => Java 8 is used when using the same PATH/JAVA_HOME inside the container. And I can compile my job without any issue.

       

      Then, I added a sleep in the item's shell and try the same.

      • Jenkins side:
      Started by user test
      Running as SYSTEM
      Building in workspace /var/jenkins_home/workspace/test
      [test] $ /bin/sh -xe /tmp/jenkins261728399817221844.sh
      + env
      + egrep -i 'java|maven|mvn'
      LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
      PATH=/usr/lib/jvm/java-8-openjdk/bin:/usr/lib/jvm/java-8-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      JAVA_HOME=/usr/lib/jvm/java-8-openjdk
      + sleep 10s
      + mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 17.0.15, vendor: Eclipse Adoptium, runtime: /opt/java/openjdk 
      • Inside Jenkins container, I exported PATH/JAVA_HOME and launch the same shell script:

       

      $ export PATH=/usr/lib/jvm/java-8-openjdk/bin:/usr/lib/jvm/java-8-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      $ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
      
      $ /bin/sh -xe /tmp/jenkins261728399817221844.sh
      + env+
      egrep -i 'java|maven|mvn'
      PATH=/usr/lib/jvm/java-8-openjdk/bin:/usr/lib/jvm/java-8-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      JAVA_HOME=/usr/lib/jvm/java-8-openjdk
      + sleep 10s
      + mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 1.8.0_442, vendor: IcedTea, runtime: /usr/lib/jvm/java-1.8-openjdk/jre 

      Starting from this, I noticed "LD_LIBRARY_PATH" and add as exported var into the shell (I did not change the other vars):

      / $ export LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
      / $ mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 17.0.15, vendor: Eclipse Adoptium, runtime: /opt/java/openjdk 

      Ok, so it seems to be that "LD_LIBRARY_PATH" is causing this issue only with Java 8.

      $ export PATH=/usr/lib/jvm/java-11-openjdk/bin:/usr/lib/jvm/java-11-openjdk/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      $ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      $ mvn -version
      Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
      Maven home: /usr/share/java/maven-3
      Java version: 11.0.27, vendor: Alpine, runtime: /usr/lib/jvm/java-11-openjdk

      So, Java 11 is not affected by "LD_LIBRARY_PATH".

      "LD_LIBRARY_PATH" is not set at OS level. But at Jenkins level. I do not know its used nor if I can unset it on my side.

      Not sure it is an Maven issue ou Jenkins issue.

      Does someone has an idea?

       

        1. Containerfile
          0.1 kB
          Sébastien
        2. item.xml
          0.7 kB
          Sébastien
        3. image-2025-05-16-14-55-31-899.png
          25 kB
          Sébastien
        4. image-2025-05-16-14-56-00-786.png
          8 kB
          Sébastien
        5. image-2025-05-16-14-56-37-971.png
          3 kB
          Sébastien
        6. image-2025-05-16-14-57-08-571.png
          8 kB
          Sébastien

            Unassigned Unassigned
            sebastienp Sébastien
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: