diff --git a/pom.xml b/pom.xml index 575e48f..db612c6 100644 --- a/pom.xml +++ b/pom.xml @@ -3,9 +3,18 @@ 4.0.0 io.ruck gocd-maven-plugin - 0.0.1 + 0.1.0 jar - gocd task plugin for maven builds + maven task plugin for GoCD + https://github.com/ruckc/gocd-maven-plugin + + + ruckc + Curtis Ruck + https://github.com/ruckc + + + 2014 Apache License, Version 2.0 diff --git a/src/main/java/io/ruck/maven/gocd/plugin/MavenTask.java b/src/main/java/io/ruck/maven/gocd/plugin/MavenTask.java index 665e3b4..35ed003 100644 --- a/src/main/java/io/ruck/maven/gocd/plugin/MavenTask.java +++ b/src/main/java/io/ruck/maven/gocd/plugin/MavenTask.java @@ -23,6 +23,7 @@ public class MavenTask implements Task { public static final String OFFLINE_KEY = "Offline"; public static final String QUIET_KEY = "Quiet"; public static final String DEBUG_KEY = "Debug"; + public static final String BATCH_KEY = "Batch"; @Override public TaskConfig config() { @@ -32,6 +33,7 @@ public TaskConfig config() { config.addProperty(OFFLINE_KEY); config.addProperty(QUIET_KEY); config.addProperty(DEBUG_KEY); + config.addProperty(BATCH_KEY).withDefault("true"); return config; } @@ -42,22 +44,7 @@ public TaskExecutor executor() { @Override public TaskView view() { - return new TaskView() { - - @Override - public String displayValue() { - return "Maven"; - } - - @Override - public String template() { - try { - return IOUtils.toString(getClass().getResourceAsStream("/views/maventask.template.html")); - } catch (IOException ex) { - return "Failed to find template: " + ex.getMessage(); - } - } - }; + return new MavenTaskView(); } @Override diff --git a/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskExecutor.java b/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskExecutor.java index d2a76fc..e0c1eac 100644 --- a/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskExecutor.java +++ b/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskExecutor.java @@ -1,5 +1,6 @@ package io.ruck.maven.gocd.plugin; +import com.thoughtworks.go.plugin.api.logging.Logger; import com.thoughtworks.go.plugin.api.response.execution.ExecutionResult; import com.thoughtworks.go.plugin.api.task.Console; import com.thoughtworks.go.plugin.api.task.TaskConfig; @@ -9,6 +10,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang.StringUtils; @@ -17,6 +19,7 @@ * @author ruckc */ public class MavenTaskExecutor implements TaskExecutor { + private static final Logger LOGGER = Logger.getLoggerFor(MavenTaskExecutor.class); @Override public ExecutionResult execute(TaskConfig tc, TaskExecutionContext tec) { @@ -50,21 +53,26 @@ private ProcessBuilder createMavenCommand(TaskConfig tc, TaskExecutionContext te List command = new ArrayList(); command.add("mvn"); - if (tc.getValue(MavenTask.DEBUG_KEY).equals("true")) { + if (StringUtils.equals(tc.getValue(MavenTask.DEBUG_KEY),"true")) { command.add("-X"); } - if (tc.getValue(MavenTask.QUIET_KEY).equals("true")) { + if (StringUtils.equals(tc.getValue(MavenTask.QUIET_KEY),"true")) { command.add("-q"); } - if (tc.getValue(MavenTask.OFFLINE_KEY).equals("true")) { + if (StringUtils.equals(tc.getValue(MavenTask.OFFLINE_KEY),"true")) { command.add("-o"); } + if (StringUtils.equals(tc.getValue(MavenTask.BATCH_KEY),"true")) { + command.add("-B"); + } if (!StringUtils.isBlank(tc.getValue(MavenTask.PROFILES_KEY))) { command.add("-p"); command.add(tc.getValue(MavenTask.PROFILES_KEY)); } - command.add(tc.getValue(MavenTask.ARGUMENTS_KEY)); + command.addAll(Arrays.asList(tc.getValue(MavenTask.ARGUMENTS_KEY).split("\\s+"))); + LOGGER.debug("Building command: "+command); + ProcessBuilder builder = new ProcessBuilder(command); builder.directory(new File(tec.workingDir())); return builder; diff --git a/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskView.java b/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskView.java new file mode 100644 index 0000000..f839039 --- /dev/null +++ b/src/main/java/io/ruck/maven/gocd/plugin/MavenTaskView.java @@ -0,0 +1,27 @@ +package io.ruck.maven.gocd.plugin; + +import com.thoughtworks.go.plugin.api.task.TaskView; +import java.io.IOException; +import org.apache.commons.io.IOUtils; + +/** + * + * @author ruckc + */ +public class MavenTaskView implements TaskView { + + @Override + public String displayValue() { + return "Maven"; + } + + @Override + public String template() { + try { + return IOUtils.toString(getClass().getResourceAsStream("/views/maventask.template.html")); + } catch (IOException ex) { + return "Failed to find template: " + ex.getMessage(); + } + } + +} diff --git a/src/main/resources/plugin.xml b/src/main/resources/plugin.xml index e081280..5858fd0 100644 --- a/src/main/resources/plugin.xml +++ b/src/main/resources/plugin.xml @@ -1,5 +1,5 @@ - + Maven plugin ${project.version} diff --git a/src/main/resources/views/maventask.template.html b/src/main/resources/views/maventask.template.html index 1226a98..e32be0c 100644 --- a/src/main/resources/views/maventask.template.html +++ b/src/main/resources/views/maventask.template.html @@ -23,4 +23,9 @@ +
+ + + +
\ No newline at end of file