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

Support for MAVEN_OPTS in release builds

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Not A Defect
    • Component/s: m2release-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All
    • Similar Issues:
      Show 5 results

      Description

      We have maven jobs that require specific MAVEN_OPTS to be able to complete
      successfully.

      One example is to be able to specify the -Xmx parameter to the JVM to workaround
      memory problems in the artifact deployer (which apparently pulls the whole
      artifact in memory to upload it, a problem for large artifacts).

      The configuration page for maven2 projects in Hudson lets you specify the
      MAVEN_OPTS to use in the Advanced Build options.

      One way to support support these in the m2release plugin would be to
      automatically use whatever MAVEN_OPTS are specified for the job in the Advanced
      Build option, if any.
      Another way would be to allow us to specify the MAVEN_OPTS to use for m2release
      somewhere in the configuration, either globally or per-project.

      Thanks!

        Attachments

          Activity

          Hide
          ingunawa Indra Gunawan added a comment -

          I am getting the same error.

          I have set the MAVEN_OPTS to the build environment section of the job via EnvInject but it is not passed to the maven release.

          The m2/3 type job does clean deploy with "-Xms512m –Xmx2048m” MAVEN_OPTS.
          I am setting the MAVEN_OPTS again in Build Environment -> Inject environment variables to the build process” : MAVEN_OPTS='-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m’

          However the maven release is still failing with OOM PermGen.

          I see this in the console:

          At revision 154784
          [EnvInject] - Executing scripts and injecting environment variables after the SCM step.
          [EnvInject] - Injecting as environment variables the properties content
          MAVEN_OPTS='-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m’

          [checkout] $ /users/px-build/commonTools/java/jdk1.7.0_67/LNX-64/bin/java -Xms512m -Xmx2048m -cp /scratch/jenkins_slave_sjc-bld62-lnx/maven3-agent.jar:/users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4 /scratch/jenkins_slave_sjc-bld62-lnx/slave.jar /scratch/jenkins_slave_sjc-bld62-lnx/maven3-interceptor.jar /scratch/jenkins_slave_sjc-bld62-lnx/maven3-interceptor-commons.jar 38360

          Executing Maven: -B -f /scratch/jenkins_slave_sjc-bld62-lnx/workspace/comp-ps_cluster_parent-PI_3_0_NIHAU/checkout/pom.xml -Dmaven.repo.local=/scratch/jenkins_slave_sjc-bld62-lnx/workspace/comp-ps_cluster_parent-PI_3_0_NIHAU/.repository -DdevelopmentVersion=3.0.29-SNAPSHOT -DreleaseVersion=3.0.28 -e -B -Prelease-profile -DgenerateReleasePoms=true release:prepare release:perform -Dresume=false -s /users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4/conf/settings-rel.xml -Dmaven.test.skip=true

          -Indra

          Show
          ingunawa Indra Gunawan added a comment - I am getting the same error. I have set the MAVEN_OPTS to the build environment section of the job via EnvInject but it is not passed to the maven release. The m2/3 type job does clean deploy with "-Xms512m –Xmx2048m” MAVEN_OPTS. I am setting the MAVEN_OPTS again in Build Environment -> Inject environment variables to the build process” : MAVEN_OPTS='-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m’ However the maven release is still failing with OOM PermGen. I see this in the console: At revision 154784 [EnvInject] - Executing scripts and injecting environment variables after the SCM step. [EnvInject] - Injecting as environment variables the properties content MAVEN_OPTS='-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m’ … [checkout] $ /users/px-build/commonTools/java/jdk1.7.0_67/LNX-64/bin/java -Xms512m -Xmx2048m -cp /scratch/jenkins_slave_sjc-bld62-lnx/maven3-agent.jar:/users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4 /scratch/jenkins_slave_sjc-bld62-lnx/slave.jar /scratch/jenkins_slave_sjc-bld62-lnx/maven3-interceptor.jar /scratch/jenkins_slave_sjc-bld62-lnx/maven3-interceptor-commons.jar 38360 … Executing Maven: -B -f /scratch/jenkins_slave_sjc-bld62-lnx/workspace/comp-ps_cluster_parent-PI_3_0_NIHAU/checkout/pom.xml -Dmaven.repo.local=/scratch/jenkins_slave_sjc-bld62-lnx/workspace/comp-ps_cluster_parent-PI_3_0_NIHAU/.repository -DdevelopmentVersion=3.0.29-SNAPSHOT -DreleaseVersion=3.0.28 -e -B -Prelease-profile -DgenerateReleasePoms=true release:prepare release:perform -Dresume=false -s /users/px-build/commonTools/maven/sjc-hudson62-lnx/apache-maven-3.0.4/conf/settings-rel.xml -Dmaven.test.skip=true … -Indra
          Hide
          ingunawa Indra Gunawan added a comment -

          Would you please explain where should the env variable MAVEN_OPTS be added to Jenkins so the m2release can pick it up in the m2/3 type job.

          Thank you
          -Indra

          Show
          ingunawa Indra Gunawan added a comment - Would you please explain where should the env variable MAVEN_OPTS be added to Jenkins so the m2release can pick it up in the m2/3 type job. Thank you -Indra
          Hide
          flefevre Francois LE FEVRE added a comment -

          I am facing exactly the same problem, would you mind to explain how to patch this?
          My sonar builds are failing.
          Thanks

          Show
          flefevre Francois LE FEVRE added a comment - I am facing exactly the same problem, would you mind to explain how to patch this? My sonar builds are failing. Thanks
          Hide
          teilo James Nord added a comment - - edited

          This is a misconfiguration on your maven side and a bug in Maven.
          Until someone demonstrates otherwise with a correctly configured pom a log from jenkins showing it not working and a log from the command line showing it working.
          (note in jenkins you will need more memory and permgen configured due to the classes and inspection it performs)
          Ask on the maven mailing list how to pass environment variables to the forked release invocation.

          Show
          teilo James Nord added a comment - - edited This is a misconfiguration on your maven side and a bug in Maven. Until someone demonstrates otherwise with a correctly configured pom a log from jenkins showing it not working and a log from the command line showing it working. (note in jenkins you will need more memory and permgen configured due to the classes and inspection it performs) Ask on the maven mailing list how to pass environment variables to the forked release invocation.
          Hide
          teilo James Nord added a comment -
          Show
          teilo James Nord added a comment - Hint http://bfy.tw/2Wg7

            People

            • Assignee:
              teilo James Nord
              Reporter:
              odony odony
            • Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: