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

SVN changes are not passed in the right manner to the incremental build option

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • CentOS Linux release 7.0.1406 x86_64
      OpenJDK 1.8.0_181-b13
      Jenkins ver. 2.150.3
      Maven Integration plugin 3.2
      Subversion Plug-in 2.12.1

      I am facing a issue where the incremental build option is not working correctly / not building the changes for a maven project.

      The basic setup is that the complete branch is checked out from SVN, then a groovy script is run adding all the checked modules to a pom.xml. (see sample pom.xml; note: the projects which contain the changes are present in the pom.xml generated) 

      Then I would expect the incremental build to put the changed projects after the -pl option of the maven command - but this is not working as expected. I did not find a pattern yet on how this project list is populated. 

      Executing Maven: -B -f /var/lib/jenkins/jobs/MVNBuildAllModules-4.0.0/workspace/BuildAllPomScript/pom.xml -amd -pl com.company:CHANGED_Moduleclean deploy -U -Djarsigner.skip=true -DskipTests-x

      Consider the following log-example:

      [EnvInject] - Loading node environment variables.
      Building remotely on slave-name in workspace /var/lib/jenkins-slave/remote-root/workspace/MVNBuildAllModules-TRUNK
      Updating http://pathfinder/svn/company/trunk at revision '2018-12-18T19:36:04.411 +0100'
      U ProjectS/src/main/java/com/company/packagename/ChangedJavaClass1.java
      U ProjectH3W/src/main/java/com/company/packagename/ChangedJavaClass2.java[...][MVNBuildAllModules-TRUNK] $ groovy /var/lib/jenkins-slave/remote-root/workspace/MVNBuildAllModules-TRUNK/hudson1813316916530204030.groovy
      Adding module:ProjectA
      Adding module:ProjectB
      Adding module:ProjectC[...]
      Adding module:ProjectS
      Adding module:ProjectH3W
      [...]
      Adding module:ProjectX
      Adding module:ProjectY
      Adding module:ProjectZ
      [...]Executing Maven: -B -f /var/lib/jenkins-slave/remote-root/workspace/MVNBuildAllModules-TRUNK/BuildAllPomScript/pom.xml
      -amd -pl com.company:ProjectX, com.company:ProjectA, com.company:ProjectZ clean deploy -U -Djarsigner.skip=true -DskipTests_x

        

      Adding module: ... output comes from the groovy script which then creates a <module>../ProjectXYZ</modules> entry in the pom.xml

      Assume that ProjectX is dependent on ProjectS and ProjectZ is dependent on ProjectH3W. I would now expect jenkins/maven to build ProjectS, ProjectH3W and als the ones that are dependent (in this short example: ProjectX and ProjectZ) but the -pl option does not necessarily contain all the projects which are changed and also contains some other random projects, which are not in the changelist of SVN.

      I assume there is a bug in the plugin which is responsible for adding the changes to the -pl option.

            Unassigned Unassigned
            k_klemens K K
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: