Build: Introduce embedded configuration used for fatJars
This commit is contained in:
@@ -73,6 +73,12 @@ fun <T : Jar> Project.runtimeJar(task: T, body: T.() -> Unit = {}): T {
|
||||
removeArtifacts(configurations.getOrCreate("archives"), defaultJarTask)
|
||||
}
|
||||
return task.apply {
|
||||
configurations.findByName("embedded")?.let { embedded ->
|
||||
dependsOn(embedded)
|
||||
from {
|
||||
embedded.map(::zipTree)
|
||||
}
|
||||
}
|
||||
setupPublicJar(project.the<BasePluginConvention>().archivesBaseName)
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
body()
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
import org.gradle.api.Action
|
||||
import org.gradle.api.artifacts.Dependency
|
||||
import org.gradle.api.artifacts.ExternalModuleDependency
|
||||
import org.gradle.api.artifacts.ModuleDependency
|
||||
import org.gradle.api.artifacts.dsl.DependencyHandler
|
||||
import org.gradle.kotlin.dsl.accessors.runtime.addDependencyTo
|
||||
import org.gradle.kotlin.dsl.accessors.runtime.addExternalModuleDependencyTo
|
||||
import org.gradle.kotlin.dsl.add
|
||||
|
||||
fun DependencyHandler.embedded(dependencyNotation: Any): Dependency? =
|
||||
add("embedded", dependencyNotation)
|
||||
|
||||
fun DependencyHandler.embedded(
|
||||
dependencyNotation: String,
|
||||
dependencyConfiguration: Action<ExternalModuleDependency>
|
||||
): ExternalModuleDependency =
|
||||
addDependencyTo(this, "embedded", dependencyNotation, dependencyConfiguration)
|
||||
|
||||
fun DependencyHandler.embedded(
|
||||
group: String,
|
||||
name: String,
|
||||
version: String? = null,
|
||||
configuration: String? = null,
|
||||
classifier: String? = null,
|
||||
ext: String? = null,
|
||||
dependencyConfiguration: Action<ExternalModuleDependency>? = null
|
||||
): ExternalModuleDependency = addExternalModuleDependencyTo(
|
||||
this, "embedded", group, name, version, configuration, classifier, ext, dependencyConfiguration
|
||||
)
|
||||
|
||||
fun <T : ModuleDependency> DependencyHandler.embedded(
|
||||
dependency: T,
|
||||
dependencyConfiguration: T.() -> Unit
|
||||
): T = add("embedded", dependency, dependencyConfiguration)
|
||||
@@ -135,7 +135,7 @@ val compilerManifestClassPath
|
||||
get() = "annotations-13.0.jar kotlin-stdlib.jar kotlin-reflect.jar kotlin-script-runtime.jar trove4j.jar"
|
||||
|
||||
object EmbeddedComponents {
|
||||
val CONFIGURATION_NAME = "embeddedComponents"
|
||||
val CONFIGURATION_NAME = "embedded"
|
||||
}
|
||||
|
||||
fun AbstractCopyTask.fromEmbeddedComponents() {
|
||||
|
||||
@@ -131,7 +131,7 @@ fun generateKotlinPluginArtifactFile(rootProject: Project): PFile {
|
||||
|
||||
kotlinPluginJar.add(FileCopy(File(rootProject.projectDir, "resources/kotlinManifest.properties")))
|
||||
|
||||
for (jarFile in sourcePath.project.configurations.getByName("embedded").resolve()) {
|
||||
for (jarFile in sourcePath.project.configurations.getByName(EmbeddedComponents.CONFIGURATION_NAME).resolve()) {
|
||||
kotlinPluginJar.add(ExtractedDirectory(jarFile))
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.io.File
|
||||
|
||||
class PillConfigurablePlugin : Plugin<Project> {
|
||||
override fun apply(project: Project) {
|
||||
project.configurations.create(EmbeddedComponents.CONFIGURATION_NAME)
|
||||
project.configurations.maybeCreate(EmbeddedComponents.CONFIGURATION_NAME)
|
||||
project.extensions.create("pill", PillExtension::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user