Allow to manually add things in the classpath of launched apps

This commit is contained in:
Alexandre Archambault 2016-09-21 10:41:18 +02:00
parent a50cb1bd85
commit 974dee8cf4
No known key found for this signature in database
GPG Key ID: 14640A6839C263A9
3 changed files with 19 additions and 2 deletions

View File

@ -75,6 +75,7 @@ object Util {
class Helper(
common: CommonOptions,
rawDependencies: Seq[String],
extraJars: Seq[File] = Nil,
printResultStdout: Boolean = false,
ignoreErrors: Boolean = false,
isolated: IsolatedLoaderOptions = IsolatedLoaderOptions(),
@ -648,7 +649,7 @@ class Helper(
}
lazy val loader = new URLClassLoader(
filteredFiles.map(_.toURI.toURL).toArray,
(filteredFiles ++ extraJars).map(_.toURI.toURL).toArray,
parentLoader
)

View File

@ -1,6 +1,7 @@
package coursier
package cli
import java.io.File
import java.net.{ URL, URLClassLoader }
import caseapp._
@ -114,6 +115,7 @@ case class Launch(
val helper = new Helper(
options.common,
remainingArgs ++ options.isolated.rawIsolated.map { case (_, dep) => dep },
extraJars = options.extraJars.map(new File(_)),
isolated = options.isolated
)
@ -123,8 +125,19 @@ case class Launch(
else
options.mainClass
val extraJars = options.extraJars.filter(_.nonEmpty)
val loader =
if (extraJars.isEmpty)
helper.loader
else
new URLClassLoader(
extraJars.map(new File(_).toURI.toURL).toArray,
helper.loader
)
Launch.run(
helper.loader,
loader,
mainClass,
userArgs,
options.common.verbosityLevel

View File

@ -188,6 +188,9 @@ case class LaunchOptions(
@Short("M")
@Short("main")
mainClass: String,
@Short("J")
@Help("Extra JARs to be added to the classpath of the launched application. Directories accepted too.")
extraJars: List[String],
@Recurse
isolated: IsolatedLoaderOptions,
@Recurse