1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 16:07:12 -07:00

Add runtime scope.

This commit is contained in:
Cedric Beust 2015-10-08 22:57:02 -07:00
parent a508f32295
commit 7690be501c
2 changed files with 18 additions and 8 deletions

View file

@ -64,17 +64,18 @@ open public class Project(
@Directive
public fun dependencies(init: Dependencies.() -> Unit) : Dependencies {
dependencies = Dependencies(this, compileDependencies, compileProvidedDependencies)
dependencies = Dependencies(this, compileDependencies, compileProvidedDependencies, compileRuntimeDependencies)
dependencies!!.init()
return dependencies!!
}
val compileDependencies : ArrayList<IClasspathDependency> = arrayListOf()
val compileProvidedDependencies : ArrayList<IClasspathDependency> = arrayListOf()
val compileRuntimeDependencies : ArrayList<IClasspathDependency> = arrayListOf()
@Directive
public fun dependenciesTest(init: Dependencies.() -> Unit) : Dependencies {
dependencies = Dependencies(this, testDependencies, testProvidedDependencies)
dependencies = Dependencies(this, testDependencies, testProvidedDependencies, compileRuntimeDependencies)
dependencies!!.init()
return dependencies!!
}
@ -91,7 +92,8 @@ public class Sources(val project: Project, val sources: ArrayList<String>) {
}
public class Dependencies(val project: Project, val dependencies: ArrayList<IClasspathDependency>,
val providedDependencies: ArrayList<IClasspathDependency>) {
val providedDependencies: ArrayList<IClasspathDependency>,
val runtimeDependencies: ArrayList<IClasspathDependency>) {
@Directive
fun compile(vararg dep: String) {
dep.forEach { dependencies.add(MavenDependency.create(it)) }
@ -101,5 +103,10 @@ public class Dependencies(val project: Project, val dependencies: ArrayList<ICla
fun provided(vararg dep: String) {
dep.forEach { providedDependencies.add(MavenDependency.create(it))}
}
@Directive
fun runtime(vararg dep: String) {
dep.forEach { runtimeDependencies.add(MavenDependency.create(it))}
}
}

View file

@ -143,14 +143,17 @@ public class PackagingPlugin @Inject constructor(val dependencyManager : Depende
}
//
// If fatJar is true, add all the transitive dependencies too
// If fatJar is true, add all the transitive dependencies as well (both compile and runtime)
//
if (jar.fatJar) {
log(2, "Creating fat jar")
val allDependencies = dependencyManager.transitiveClosure(project.compileDependencies)
allDependencies.map { it.jarFile.get() }.forEach {
if (! isExcluded(it, jar.excludes)) {
allFiles.add(IncludedFile(arrayListOf(FileSpec(it.path))))
listOf(dependencyManager.transitiveClosure(project.compileDependencies),
dependencyManager.transitiveClosure(project.compileRuntimeDependencies)).forEach { dep ->
dep.map { it.jarFile.get() }.forEach {
if (!isExcluded(it, jar.excludes)) {
allFiles.add(IncludedFile(arrayListOf(FileSpec(it.path))))
}
}
}
}