package Ġorg . jetbrains . kotlin x . jupyter . api . plugin Ċ Ċ import Ġcom . google . devtools . k sp . gradle . K sp Extension Ċ import Ġcom . google . devtools . k sp . gradle . K sp Gradle Sub plugin Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . tasks . Copy Ċ import Ġorg . gradle . kotlin . dsl . findBy Type Ċ import Ġorg . gradle . kotlin . dsl . invoke Ċ import Ġorg . gradle . kotlin . dsl . named Ċ import Ġorg . gradle . kotlin . dsl . register Ċ import Ġorg . gradle . kotlin . dsl . repositories Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Multi platform Extension Ċ import Ġorg . jetbrains . kotlin . gradle . targets . jvm . Kotlin Jvm Target Ċ import Ġorg . jetbrains . kotlin x . jupyter . api . plugin . tasks . J upyter Api Resources Task Ċ import Ġorg . jetbrains . kotlin x . jupyter . api . plugin . util . add Maven Central If DoesNotExist Ċ import Ġorg . jetbrains . kotlin x . jupyter . api . plugin . util . when Added Ċ Ċ class ĠApi Gradle Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ): ĠUnit Ġ= Ġwith ( target ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplugin Extension Ġ= ĠKotlin J upyter Plugin Extension ( target ) ĊĠĠĠĠĠĠĠ Ġextensions . add (" kotlin J upyter ", Ġplugin Extension ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjupyter Build Path Ġ= Ġbuild Dir . resolve ( FQ NS _ PATH ) ĊĠĠĠĠĠĠĠ Ġjupyter Build Path . mkdir s () ĊĠĠĠĠĠĠĠ Ġif Ġ( plugin Extension . scanner Dependency Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply ( K sp Gradle Sub plugin :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconfigurations . when Added ({ Ġit . name Ġ== Ġ" k sp " Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . configure < K sp Extension >(" k sp ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg (" kotlin . jupyter . fq n . path ", Ġjupyter Build Path . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin Extension . add Dependencies IfNeeded () ĊĊĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Maven Central If DoesNotExist () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Task Name Ġ= Ġ" process J upyter Api Resources " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġregister Resource Task (): ĠJupyter Api Resources Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ByName ( resources Task Name ) Ġ?: Ġregister < J upyter Api Resources Task >( resources Task Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnamed < J upyter Api Resources Task >( resources Task Name ). get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġdepend On Processing Task ( process Task Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjupyter Task Ġ= Ġregister Resource Task () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . named < Copy >( process Task Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( resources Task Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( jupyter Task . output Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġdepend On K sp ( k sp Task Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjupyter Task Ġ= Ġregister Resource Task () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . when Added ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġit . name Ġ== Ġk sp Task Name Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġk sp Task Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjupyter Task . depends On ( k sp Task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . named ( resources Task Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( k sp Task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk sp Task . outputs . dir ( jupyter Build Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġapply Ġconfiguration Ġto ĠJVM - only Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins . with Id (" org . jetbrains . kotlin . jvm ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On Processing Task (" process Resources ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On K sp (" k sp Kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġapply Ġonly Ġto Ġmulti platform Ġplugin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins . with Id (" org . jetbrains . kotlin . multi platform ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . findBy Type < Kotlin Multi platform Extension >() ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtargets . when Added ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ( it Ġis ĠKotlin Jvm Target ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On Processing Task ( it . name Ġ+ Ġ" Process Resources ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On K sp (" k sp Kotlin Jvm ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF Q NS _ PATH Ġ= Ġ" generated / jupyter / fq ns " ĊĠĠĠ Ġ} Ċ } Ċ