Nuevo Kotlin User Group en Valencia y event "Estado de Machine Learning en Kotlin"
¡Se acaba de inaugurar el nuevo Kotlin Valencia User Group! Inicialmente organizado por Carlos Cáceres
Hace un par de días salió Gradle Script Kotlin 0.9.0.
Y he aquí la traducción de las Release Notes:
Gradle Script Kotlin v0.9.0 es otro paso grande en usabilidad, mejorando el DSL, la experiencia en intelliJ, rendimiento y por fin, detección automática de las builds en Kotlin.
Se espera que la v0.9.0 se incluya en el próximo Gradle 4.0 RC1.
Las características de esta versión se pueden usar de inmediato con el último snapshot de la distribución de Gradle Script Kotlin. Para usarlo, actualizad vuestro wrapper de Gradle de la siguiente forma:
$ cd $YOUR_PROJECT_ROOT $ gradle wrapper --gradle-distribution-url https://repo.gradle.org/gradle/dist-snapshots/gradle-script-kotlin-4.0-20170518042627+0000-all.zip
Se acabó la coletilla de <code class="highlighter-rouge">rootProject.buildFileName = 'build.gradle.kts'
en el archivo <code class="highlighter-rouge">settings.gradle
para habilitar el script de construcción en Kotlin! 🎉
Se han añadido recientemente más de 50 setters fuertemente tipados al api de Gradle para permitir migrar build scripts a partir de configuración de sintaxis mucho más verbosas como:
val someBuild by tasks.creating(GradleBuild::class) { setDir(file("some/path")) // NOT RECOGNIZED AS PROPERTY BECAUSE OF UNTYPED SETTER setTasks(listOf("foo", "bar")) // NOT RECOGNIZED AS PROPERTY BECAUSE OF UNTYPED SETTER }
a otras mucho más declarativas:
val someBuild by tasks.creating(GradleBuild::class) { dir = file("some/path") tasks = listOf("foo", "bar") }
<code class="highlighter-rouge">java.sourceSets
en vez de <code class="highlighter-rouge">java().sourceSets
como ocurría en la 0.8.0.<code class="highlighter-rouge">plugins
(pendiente de una corrección en intellij)<code class="highlighter-rouge">buildscript
configurado para resolver artefactos de código fuente de Kotlin.Y funciona con el último Android Studio (2.3.2).
<code class="highlighter-rouge">0.8.0
añadieron una carga excesiva a la configuración del proyecto, aún cuando no habían build scripts de Kotlin de por medio. Esto ya está arreglado.<code class="highlighter-rouge">PropertyState<T>
y <code class="highlighter-rouge">ConfigurableFileCollection
(#344). Haciendo uso de las propiedades delegadas de Kotlin:PropertyState<String>
backing field private val messageState = project.propertymessageState
as the message
property whose type is inferred as String var message by messageState // Can also be exposed as Provider<String>
for additional functionality val messageProvider: ProvideroutputFiles
property type is inferred as ConfigurableFileCollection
// with the following behaviour: // - getting will always return the original instance // - setting will setFrom
the source var outputFiles by project.files() }Echad un ojo al ejemplo provider-properties para más información.
<code class="highlighter-rouge">settings.gradle
ya no causa que la build falle (#302, #331) siguiendo con el comportamiento estándar de Gradle.<code class="highlighter-rouge">publishing
ahora funcionarán como se espera (#327, #328). Y difieren configuraciones hasta ser necesario.<code class="highlighter-rouge">buildSrc
se pueden editar con el classpath correcto en intelliJ (#339). Los build scripts se ejecutarán de la mejor forma cuando se está computando el classpath.