aboutsummaryrefslogtreecommitdiff
path: root/stage2/BasicBuild.scala
diff options
context:
space:
mode:
Diffstat (limited to 'stage2/BasicBuild.scala')
-rw-r--r--stage2/BasicBuild.scala25
1 files changed, 22 insertions, 3 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index 750b0bc..9db4632 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -157,9 +157,28 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge
def runClass: Option[String] = lib.runClass( mainClasses ).map( _.getName )
- def run: ExitCode = runClass.map( lib.runMain( _, context.args, classLoader(context.classLoaderCache) ) ).getOrElse{
- logger.task( "No main class found for " ++ projectDirectory.string )
- ExitCode.Success
+ def runMain( className: String, args: String* ) = lib.runMain( className, args, classLoader(context.classLoaderCache) )
+
+ def flatClassLoader: Boolean = false
+
+ def run: ExitCode = {
+ if(flatClassLoader){
+ runClass.map(
+ lib.runMain(
+ _,
+ context.args,
+ new java.net.URLClassLoader(classpath.strings.map(f => new URL("file://" ++ f)).toArray)
+ )
+ ).getOrElse{
+ logger.task( "No main class found for " ++ projectDirectory.string )
+ ExitCode.Success
+ }
+ } else {
+ runClass.map( runMain( _, context.args: _* ) ).getOrElse{
+ logger.task( "No main class found for " ++ projectDirectory.string )
+ ExitCode.Success
+ }
+ }
}
def clean: ExitCode = {