diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-14 00:12:22 -0500 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-14 00:34:48 -0500 |
commit | 349e4b3546973a30f2823fa5461767322a606d9a (patch) | |
tree | 4db5a331fc4c1d39bccd77254f3fd683cb8ff923 /stage1 | |
parent | 92b26f394460aa609f9d073ea044776e7d8c46fb (diff) | |
download | cbt-349e4b3546973a30f2823fa5461767322a606d9a.tar.gz cbt-349e4b3546973a30f2823fa5461767322a606d9a.tar.bz2 cbt-349e4b3546973a30f2823fa5461767322a606d9a.zip |
support flatClassLoader and run at Dependency level
Diffstat (limited to 'stage1')
-rw-r--r-- | stage1/resolver.scala | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/stage1/resolver.scala b/stage1/resolver.scala index 4731b0c..e02f931 100644 --- a/stage1/resolver.scala +++ b/stage1/resolver.scala @@ -79,8 +79,21 @@ trait DependencyImplementation extends Dependency{ } */ + def runMain( className: String, args: String* ) = lib.runMain( className, args, classLoader ) + def flatClassLoader: Boolean = false + def mainClasses: Seq[Class[_]] = exportedClasspath.files.flatMap( lib.mainClasses( _, classLoader ) ) + + def runClass: Option[String] = lib.runClass( mainClasses ).map( _.getName ) + + def run( args: String* ): ExitCode = { + runClass.map( runMain( _, args: _* ) ).getOrElse{ + logger.task( "No main class found for " ++ show ) + ExitCode.Success + } + } + def classLoader: ClassLoader = { if( flatClassLoader ){ new java.net.URLClassLoader(classpath.strings.map(f => new URL("file://" ++ f)).toArray) |