package Ġio . pix e lout law . gradle Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ /** Ċ Ġ* ĠHandles Ġany Ġshare able Ġlogic Ġbetween Ġsingle Ġand Ġmultiple Ġmodule Ġprojects . Ċ Ġ*/ Ċ open Ġclass ĠPixel Out law Gradle Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġdo Ġanything Ġif Ġwe Ġaren 't Ġthe Ġroot Ġproject ĊĠĠĠĠĠĠĠ Ġif Ġ( target Ġ!= Ġtarget . root Project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġthis Ġcan Ġonly Ġbe Ġran Ġon Ġthe Ġroot Ġproject ĊĠĠĠĠĠĠĠ Ġtarget . apply Root Configuration () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAll Ġof Ġthe Ġother Ġplugin Ġconfigs Ġare Ġconditional , Ġso Ġwe Ġcan Ġgo Ġahead ĊĠĠĠĠĠĠĠ Ġ// Ġand Ġjust Ġapply Ġthem Ġto Ġall projects ĊĠĠĠĠĠĠĠ Ġtarget . all projects Ġ{ Ġproject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthings Ġthat Ġshould Ġgo Ġon Ġevery Ġsingle Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . apply Base Configuration () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġproject Ġis Ġusing ĠJava , Ġapply ĠJava Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugin Manager . with Plugin (" java ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . apply Java Configuration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġproject Ġis Ġusing ĠKotlin , Ġapply ĠKotlin Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugin Manager . with Plugin (" org . jetbrains . kotlin . jvm ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . apply Kotlin Configuration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsetup Ġmaven Ġcentral Ġpublication ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugin Manager . with Plugin (" maven - publish ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . publish To Maven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmake Ġsure Ġall Ġpublications Ġare Ġready Ġfor Ġmaven Ġcentral ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugin Manager . with Plugin (" n ebula . maven - publish ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . configure Public ations For Maven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ