1 package org
.argeo
.slc
.maven
;
3 import java
.util
.ArrayList
;
7 import org
.apache
.commons
.logging
.Log
;
8 import org
.apache
.commons
.logging
.LogFactory
;
9 import org
.codehaus
.plexus
.PlexusContainer
;
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
;
21 Thread
.currentThread().setContextClassLoader(
22 getClass().getClassLoader());
23 List
<String
> args
= new ArrayList
<String
>();
25 if (settings
!= null) {
26 args
.add("--settings");
30 args
.add(basedir
+ "/pom.xml");
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
) + "\"");
40 // String[] goals = { "-o", "-e", "-f", basedir + "/pom.xml", "clean",
43 // String m2Home = "/opt/apache-maven-3.0.1";
44 // System.setProperty("classworlds.conf", m2Home + "/bin/m2.conf");
45 // System.setProperty("maven.home", m2Home);
47 // Launcher.main(goals);
49 CustomCli mavenCli
= new CustomCli();
50 mavenCli
.doMain(args
.toArray(new String
[args
.size()]), basedir
,
51 System
.out
, System
.err
);
53 PlexusContainer plexusContainer
= mavenCli
.getContainer();
54 if (log
.isDebugEnabled())
55 log
.debug(plexusContainer
.getContext().getContextData());
56 plexusContainer
.dispose();
59 public void setBasedir(String basedir
) {
60 this.basedir
= basedir
;
63 public void setSettings(String settings
) {
64 this.settings
= settings
;
67 public void setGoals(List
<String
> goals
) {
71 public void setProfiles(List
<String
> profiles
) {
72 this.profiles
= profiles
;
75 public void setProperties(Map
<String
, String
> properties
) {
76 this.properties
= properties
;