araqnid
03/07/2018, 4:51 PMFlorian Wiesner
03/07/2018, 4:51 PMaraqnid
03/07/2018, 4:52 PMthe<JavaPluginConvention>().sourceCompatibility = JavaVersion.VERSION_1_8
araqnid
03/07/2018, 4:52 PMFlorian Wiesner
03/07/2018, 4:54 PMaraqnid
03/07/2018, 4:54 PMaraqnid
03/07/2018, 4:54 PMval SourceSet.scala: SourceDirectorySet
get() = withConvention(ScalaSourceSet::class) { scala }
Florian Wiesner
03/07/2018, 4:54 PMaraqnid
03/07/2018, 4:55 PMFlorian Wiesner
03/07/2018, 4:55 PMFlorian Wiesner
03/07/2018, 4:55 PMFlorian Wiesner
03/07/2018, 4:55 PMFlorian Wiesner
03/07/2018, 4:55 PMaraqnid
03/07/2018, 4:56 PMCzar
03/07/2018, 4:57 PMplugins {}
block instead of buildscript {}
, that will generate proper DSL for you, e.g.
plugins {
java
}
java {
sourceCompatibility = VERSION_1_8
targetCompatibility = VERSION_1_8
}
Florian Wiesner
03/07/2018, 4:57 PMaraqnid
03/07/2018, 4:58 PMExtensionContainerExtensions.kt
in the DSL plugin to allow you to write extensions["xxx"]
etcaraqnid
03/07/2018, 4:58 PMreporting
are project extensionsFlorian Wiesner
03/07/2018, 4:59 PMplugins {
id("info.florian-wiesner.magicdraw")
}
Florian Wiesner
03/07/2018, 5:00 PMFlorian Wiesner
03/07/2018, 5:00 PMFlorian Wiesner
03/07/2018, 5:01 PMthe<florianwiesner.gradle.magicdraw.MagicDrawExtension>()
leads to an unresolved referenceFlorian Wiesner
03/07/2018, 5:02 PMaraqnid
03/07/2018, 5:04 PMaraqnid
03/07/2018, 5:04 PMextensions.findByType(ReportingExtension::class.java)
which that should be sugar forFlorian Wiesner
03/07/2018, 5:04 PMFlorian Wiesner
03/07/2018, 5:05 PMFlorian Wiesner
03/07/2018, 5:05 PMFlorian Wiesner
03/07/2018, 5:06 PMplugins{}
DSLFlorian Wiesner
03/07/2018, 5:06 PMaraqnid
03/07/2018, 5:07 PMFlorian Wiesner
03/07/2018, 5:07 PMclass MagicDrawGradlePlugin : Plugin<Project> {
private lateinit var project: Project
override fun apply(project: Project?) {
if (project == null) throw GradleException("project must not be null")
this.project = project
val extension = addExtension<MagicDrawExtension>("magicdraw", project.objects)
val verifyMagicDrawTask = project.tasks.create("verifyMagicDraw", VerifyMagicDrawTask::class.java)
verifyMagicDrawTask.installDir = extension.installDir as String? ?: ""
}
private inline fun <reified T> addExtension(name: String, vararg args: Any): T = project.extensions.create(name, T::class.java, *args)
}
Florian Wiesner
03/07/2018, 5:08 PMaraqnid
03/07/2018, 5:08 PMmagicdraw
araqnid
03/07/2018, 5:08 PMmagicdraw { ... }
in the build script, and the glue should have made a Project.magicdraw extension propertyFlorian Wiesner
03/07/2018, 5:08 PMmagicdraw{...}
is thereFlorian Wiesner
03/07/2018, 5:09 PMaraqnid
03/07/2018, 5:09 PMFlorian Wiesner
03/07/2018, 5:10 PMaraqnid
03/07/2018, 5:10 PMaraqnid
03/07/2018, 5:10 PMFlorian Wiesner
03/07/2018, 5:10 PMFlorian Wiesner
03/07/2018, 5:10 PMaraqnid
03/07/2018, 5:11 PMFlorian Wiesner
03/07/2018, 5:12 PMGradleRunner
supports Kotlin DSLFlorian Wiesner
03/07/2018, 5:12 PMFlorian Wiesner
03/07/2018, 5:12 PMaraqnid
03/07/2018, 5:13 PMFlorian Wiesner
03/07/2018, 5:13 PMaraqnid
03/07/2018, 5:13 PMFlorian Wiesner
03/07/2018, 5:13 PMaraqnid
03/07/2018, 5:14 PMFlorian Wiesner
03/07/2018, 5:14 PMplugins{id()...)}
finds my plugin and loads itFlorian Wiesner
03/07/2018, 5:14 PMFlorian Wiesner
03/07/2018, 5:14 PMFlorian Wiesner
03/07/2018, 5:15 PMFlorian Wiesner
03/07/2018, 5:15 PMFlorian Wiesner
03/07/2018, 5:15 PMplugins{...}
might work because it is somewhat separated from the rest of the scriptFlorian Wiesner
03/07/2018, 5:17 PMval fooVersion:String by extra
plugins {
id("bar") version fooVersion
}
won’t workaraqnid
03/07/2018, 5:18 PMFlorian Wiesner
03/07/2018, 5:19 PMFlorian Wiesner
03/07/2018, 5:19 PMbuildscript
araqnid
03/07/2018, 5:19 PMFlorian Wiesner
03/07/2018, 5:19 PMplugins
blockFlorian Wiesner
03/07/2018, 5:20 PMFlorian Wiesner
03/07/2018, 5:20 PMaraqnid
03/07/2018, 5:20 PMaraqnid
03/07/2018, 5:21 PMFlorian Wiesner
03/07/2018, 5:21 PMFlorian Wiesner
03/07/2018, 5:22 PMaraqnid
03/07/2018, 5:22 PMFlorian Wiesner
03/07/2018, 5:22 PMFlorian Wiesner
03/07/2018, 5:22 PMaraqnid
03/07/2018, 5:22 PMFlorian Wiesner
03/07/2018, 5:23 PMFlorian Wiesner
03/07/2018, 5:23 PMaraqnid
03/07/2018, 5:37 PMaraqnid
03/07/2018, 5:39 PM/tmp/.gradle-test-kit-shaslam/caches/4.5/gradle-kotlin-dsl-accessors
-- i tried just removing the caches, no changearaqnid
03/07/2018, 5:39 PMAny
araqnid
03/07/2018, 5:40 PMaraqnid
03/07/2018, 5:41 PMaraqnid
03/07/2018, 5:41 PM/**
* Configures the [webpack][com.timgroup.gradle.webpack.WebpackProjectExtension] project extension.
*
* `webpack` is not accessible in a type safe way because:
* - `com.timgroup.gradle.webpack.WebpackProjectExtension` is not available
*/
fun Project.`webpack`(configure: Any.() -> Unit): Unit =
extensions.configure("webpack", configure)
araqnid
03/07/2018, 5:41 PMaraqnid
03/07/2018, 5:44 PMFlorian Wiesner
03/07/2018, 6:51 PMmkobit
03/08/2018, 6:32 PM