1. Continuum
  2. CONTINUUM-1808

Maven2 POM validation errors should end up in the Output text field of the Build results!


    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: 1.2.1
    • Component/s: Integration - Maven 2
    • Labels:



      One of our Maven2 projects started to fail on Continuum. When I checked the Builds page, there were always pairs of entries with a few seconds between them. For each of these pairs of build results, the former was always in Error, while the latter (most recent build) was always in Failure.

      The log of the error build was this:

      org.codehaus.plexus.taskqueue.execution.TaskExecutionException: Error executing action 'update-project-from-working-directory'
      at org.apache.maven.continuum.buildcontroller.DefaultBuildController.performAction(
      at org.apache.maven.continuum.buildcontroller.BuildProjectTaskExecutor.executeTask(
      at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$
      Caused by: org.apache.maven.continuum.execution.ContinuumBuildExecutorException: Error while mapping metadata:add.project.validation.error

      at org.apache.maven.continuum.execution.maven.m2.MavenTwoBuildExecutor.updateProjectFromCheckOut(
      at org.apache.maven.continuum.core.action.UpdateProjectFromWorkingDirectoryContinuumAction.execute(
      at org.apache.maven.continuum.buildcontroller.DefaultBuildController.performAction(
      ... 8 more

      The log of the failure build was this:

      + Error stacktraces are turned on.
      Maven version: 2.0.8
      Java version: 1.4.2_08
      OS name: "sunos" version: "5.10" arch: "sparc" Family: "unix" [DEBUG] Building Maven user-level plugin registry from: '/home/Dci/.m2/plugin-registry.xml'
      [DEBUG] Building Maven global-level plugin registry from: '/dvp/lib/sft/maven/install/2.0.8/conf/plugin-registry.xml'
      [INFO] Scanning for projects...
      [INFO] ------------------------------------------------------------------------
      [INFO] Building Maven Default Project
      [INFO] task-segment: [clean, deploy, site]
      [INFO] ------------------------------------------------------------------------
      [DEBUG] maven-clean-plugin: resolved to version 2.2 from repository central [DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins::10 for project: null:maven-clean-plugin:maven-plugin:2.2 from the repository.
      [DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent::7 for project: org.apache.maven.plugins:maven-plugins:pom:10 from the repository.
      [DEBUG] Retrieving parent-POM: org.apache:apache::4 for project: org.apache.maven:maven-parent:pom:7 from the repository.
      [INFO] ------------------------------------------------------------------------
      [INFO] ------------------------------------------------------------------------
      [INFO] Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
      [INFO] ------------------------------------------------------------------------
      [DEBUG] Trace
      org.apache.maven.lifecycle.LifecycleExecutionException: Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
      at org.apache.maven.DefaultMaven.doExecute(
      at org.apache.maven.DefaultMaven.execute(
      at org.apache.maven.cli.MavenCli.main(
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(
      at java.lang.reflect.Method.invoke(
      at org.codehaus.classworlds.Launcher.launchEnhanced(
      at org.codehaus.classworlds.Launcher.launch(
      at org.codehaus.classworlds.Launcher.mainWithExitCode(
      at org.codehaus.classworlds.Launcher.main(
      Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
      ... 16 more
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: < 1 second
      [INFO] Finished at: Tue Jun 24 08:35:33 CEST 2008 [INFO] Final Memory: 1M/4M [INFO] ------------------------------------------------------------------------

      If I look at the Working copy, there is no pom.xml file, so I was quite puzzled. The CVS repository does contain the pom.xml and a checkout of the project to my local workstation was completely OK.

      I finally found the error in the wrapper.log. The POM used a property to resolve a dependency version that was undefined in the parent pom, leading to validation errors. This error message should definitely end up in the Output textfield of a Build results page in the webfrontend!!!

      INFO | jvm 1 | 2008/06/24 08:35:31 | 2008-06-24 08:35:31,497 [pool-1-thread-1] ERROR org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper:default - Cannot build maven project from /dvp_loc_ci_00_00/dvp/loc/rts/ci/working-directory/53/pom.xml (Failed to validate POM).
      INFO | jvm 1 | 2008/06/24 08:35:31 | 'dependencies.dependency.version' is missing for be.telenet:srv.location.location

      Another remark: having two entries in the Build results page for a build I triggered once made me believe that there were two copies of Continuum running, with the error coming from concurrent access of the working copy. A build failure should only end up in one build result...


      Ringo De Smet



          • Assignee:
            Emmanuel Venisse
            Ringo De Smet
          • Votes:
            0 Vote for this issue
            3 Start watching this issue


            • Created: