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

Support for MAVEN_OPTS in release builds

    Details

    • Type: Improvement
    • Status: Reopened
    • Priority: Major
    • Resolution: Unresolved
    • Component/s: m2release-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All

      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!

        Activity

        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in hudson
        User: : teilo
        Path:
        trunk/hudson/plugins/m2release/src/main/java/org/jvnet/hudson/plugins/m2release/M2ReleaseBuildWrapper.java
        http://fisheye4.cenqua.com/changelog/hudson/?cs=19423
        Log:
        [FIXED JENKINS-3644] Explicitly set the EvironmentVariable MAVEN_OPTS so it is inherited by forked maven processes - like the release plugin

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in hudson User: : teilo Path: trunk/hudson/plugins/m2release/src/main/java/org/jvnet/hudson/plugins/m2release/M2ReleaseBuildWrapper.java http://fisheye4.cenqua.com/changelog/hudson/?cs=19423 Log: [FIXED JENKINS-3644] Explicitly set the EvironmentVariable MAVEN_OPTS so it is inherited by forked maven processes - like the release plugin
        Hide
        teilo James Nord added a comment -

        marking closed

        Show
        teilo James Nord added a comment - marking closed
        Hide
        ingunawa Indra Gunawan added a comment -

        What is the workaround here?

        I set "MAVEN_OPTS" as env variable using the EnvInject plug-in but the maven release still runs into OOM PermGen.
        Jenkins version : 1.544.3
        m2Release plugin version: 0.14
        Maven Project plugin version 2.7.1

        -Indra

        Show
        ingunawa Indra Gunawan added a comment - What is the workaround here? I set "MAVEN_OPTS" as env variable using the EnvInject plug-in but the maven release still runs into OOM PermGen. Jenkins version : 1.544.3 m2Release plugin version: 0.14 Maven Project plugin version 2.7.1 -Indra
        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

          People

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

            Dates

            • Created:
              Updated: