1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.scala_tools.maven;
17
18 import java.io.File;
19 import java.util.HashSet;
20 import java.util.Set;
21
22
23
24
25
26
27
28 public class ScalaConsoleMojo extends ScalaMojoSupport {
29
30
31
32
33
34
35
36 protected String mainConsole;
37
38
39
40
41
42
43
44 protected boolean useTestClasspath;
45
46
47
48
49
50
51
52 protected boolean useRuntimeClasspath;
53
54
55
56
57
58
59
60 protected File javaRebelPath;
61
62 @Override
63 @SuppressWarnings("unchecked")
64 protected void doExecute() throws Exception {
65 Set<String> classpath = new HashSet<String>();
66 addToClasspath("org.scala-lang", "scala-compiler", scalaVersion, classpath);
67 addToClasspath("org.scala-lang", "scala-library", scalaVersion, classpath);
68 classpath.addAll(project.getCompileClasspathElements());
69 if (useTestClasspath) {
70 classpath.addAll(project.getTestClasspathElements());
71 }
72 if (useRuntimeClasspath) {
73 classpath.addAll(project.getRuntimeClasspathElements());
74 }
75 String classpathStr = JavaCommand.toMultiPath(classpath.toArray(new String[classpath.size()]));
76 JavaCommand jcmd = new JavaCommand(this, mainConsole, classpathStr, jvmArgs, args);
77 if (javaRebelPath != null) {
78 if (!javaRebelPath.exists()) {
79 getLog().warn("javaRevelPath '"+javaRebelPath.getCanonicalPath()+"' not found");
80 } else {
81 jcmd.addJvmArgs("-noverify", "-javaagent:" + javaRebelPath.getCanonicalPath());
82 }
83 }
84 jcmd.setLogOnly(false);
85 jcmd.run(displayCmd);
86 }
87 }