Improve MavenCall
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 12 Feb 2012 17:38:46 +0000 (17:38 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 12 Feb 2012 17:38:46 +0000 (17:38 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5053 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenCall.java

index 39e57543b911d42d599e25673b94315a266d162c..d85067ebbfbc2d4d1220e7692cad78809fc3a2f0 100644 (file)
@@ -2,6 +2,7 @@ package org.argeo.slc.maven;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -15,6 +16,8 @@ public class MavenCall implements Runnable {
        private final static Log log = LogFactory.getLog(MavenCall.class);
        private String basedir;
        private String settings;
+       /** Raw command lines arguments */
+       private String cl;
        private List<String> goals;
        private List<String> profiles;
        private Map<String, String> properties;
@@ -30,6 +33,12 @@ public class MavenCall implements Runnable {
                }
                args.add("-f");
                args.add(getBasedirFile().getPath() + "/pom.xml");
+               // FIXME manages \" \". Use Commons CLI?
+               if (cl != null) {
+                       String[] clArgs = cl.split(" ");
+                       args.addAll(Arrays.asList(clArgs));
+               }
+
                if (goals != null)
                        args.addAll(goals);
                if (profiles != null)
@@ -49,8 +58,10 @@ public class MavenCall implements Runnable {
                // Launcher.main(goals);
 
                CustomCli mavenCli = new CustomCli();
-               mavenCli.doMain(args.toArray(new String[args.size()]), getBasedirFile()
-                               .getPath(), System.out, System.err);
+               int exitCode = mavenCli.doMain(args.toArray(new String[args.size()]),
+                               getBasedirFile().getPath(), System.out, System.err);
+               if (log.isDebugEnabled())
+                       log.debug("Maven exit code: " + exitCode);
 
                PlexusContainer plexusContainer = mavenCli.getContainer();
                if (log.isDebugEnabled())
@@ -90,4 +101,8 @@ public class MavenCall implements Runnable {
                this.properties = properties;
        }
 
+       public void setCl(String cl) {
+               this.cl = cl;
+       }
+
 }