]> git.argeo.org Git - gpl/argeo-slc.git/blob - MavenCall.java
d180d1e11ea26d4ad3432590d3be4e8b28df6271
[gpl/argeo-slc.git] / MavenCall.java
1 package org.argeo.slc.maven;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.codehaus.plexus.PlexusContainer;
10
11 /** A Maven execution. */
12 public class MavenCall implements Runnable {
13 private final static Log log = LogFactory.getLog(MavenCall.class);
14 private String basedir;
15 private String settings;
16 private List<String> goals;
17 private List<String> profiles;
18 private Map<String, String> properties;
19
20 public void run() {
21 Thread.currentThread().setContextClassLoader(
22 getClass().getClassLoader());
23 List<String> args = new ArrayList<String>();
24 args.add("-e");
25 if (settings != null) {
26 args.add("--settings");
27 args.add(settings);
28 }
29 args.add("-f");
30 args.add(basedir + "/pom.xml");
31 if (goals != null)
32 args.addAll(goals);
33 if (profiles != null)
34 for (String profile : profiles)
35 args.add("-P" + profile);
36 if (properties != null)
37 for (String key : properties.keySet())
38 args.add("-D" + key + "=\"" + properties.get(key) + "\"");
39
40 // String[] goals = { "-o", "-e", "-f", basedir + "/pom.xml", "clean",
41 // "install" };
42
43 // String m2Home = "/opt/apache-maven-3.0.1";
44 // System.setProperty("classworlds.conf", m2Home + "/bin/m2.conf");
45 // System.setProperty("maven.home", m2Home);
46 //
47 // Launcher.main(goals);
48
49 CustomCli mavenCli = new CustomCli();
50 mavenCli.doMain(args.toArray(new String[args.size()]), basedir,
51 System.out, System.err);
52
53 PlexusContainer plexusContainer = mavenCli.getContainer();
54 if (log.isDebugEnabled())
55 log.debug(plexusContainer.getContext().getContextData());
56 plexusContainer.dispose();
57 }
58
59 public void setBasedir(String basedir) {
60 this.basedir = basedir;
61 }
62
63 public void setSettings(String settings) {
64 this.settings = settings;
65 }
66
67 public void setGoals(List<String> goals) {
68 this.goals = goals;
69 }
70
71 public void setProfiles(List<String> profiles) {
72 this.profiles = profiles;
73 }
74
75 public void setProperties(Map<String, String> properties) {
76 this.properties = properties;
77 }
78
79 }