apply ( plugin Ġ= Ġ" kotlin ") Ċ Ċ dependencies Ġ{ ĊĠ Ġimplementation ( Dependencies . apache Common s Lang 3 ) ĊĠ Ġimplementation ( Dependencies . gu ava ) ĊĠ Ġimplementation ( Dependencies . mos hi Core ) ĊĠ Ġimplementation ( Dependencies . mos hi Kotlin ) ĊĠ Ġimplementation ( Dependencies . wire Runtime ) ĊĠ Ġimplementation ( Dependencies . gu ice ) ĊĠ Ġimplementation ( Dependencies . ret rofit ) ĊĠ Ġimplementation ( Dependencies . ret rofit Mock ) ĊĠ Ġimplementation ( Dependencies . ret rofit M oshi ) ĊĠ Ġimplementation ( Dependencies . ret rofit Wire ) ĊĠ Ġimplementation ( Dependencies . ok io ) ĊĠ Ġimplementation ( Dependencies . kotlin Std Lib ) ĊĠ Ġimplementation ( Dependencies . wire M oshi Adapter ) ĊĠ Ġimplementation ( Dependencies . w isp Logging ) ĊĊĠ Ġ// Ġ" client " Ġis Ġan Ġimplementation Ġnot Ġan Ġapi Ġdependency Ġbecause Ġclient Ġimplementations ĠMUST ĊĠ Ġ// Ġexpose Ġ" client " Ġas Ġan Ġexplicit Ġapi Ġdependency Ġso Ġthat Ġcustomers Ġof Ġthat Ġclient Ġhave Ġaccess Ġto ĊĠ Ġ// Ġthe Ġcorrect Ġclasses . ĊĠ Ġ// ĊĠ Ġ// ĠThese Ġbase Ġclasses Ġshould Ġbe Ġan Ġimplementation Ġfor Ġthe Ġclient Ġimplementations Ġas Ġwell Ġmaking ĊĠ Ġ// Ġbase Ġclasses Ġaccessible Ġto Ġthe Ġclient Ġimplementations Ġbut Ġnot Ġthe Ġclient Ġcustomers . ĊĠ Ġimplementation ( project (": client ")) ĊĊĠ Ġtest Implementation ( Dependencies . junit Engine ) ĊĠ Ġtest Implementation ( Dependencies . assertj ) ĊĠ Ġtest Implementation ( Dependencies . kotlin Test ) ĊĠ Ġtest Implementation ( project (": back fil a - embedded ")) ĊĊĠ Ġ// Ġ********************************* ******* ĊĠ Ġ// ĠFor ĠTEST ING Ġpurposes Ġonly . ĠWe Ġonly Ġwant ĠM isk Ġfor Ġeasy Ġtesting . ĊĠ Ġ// ĠDO ĠNOT Ġturn Ġthese Ġinto Ġregular Ġdependencies . ĊĠ Ġ// Ġ********************************* ******* ĊĠ Ġ/* ĠTEST ĠONLY Ġ*/ Ġtest Implementation ( Dependencies . mis k ) ĊĠ Ġ/* ĠTEST ĠONLY Ġ*/ Ġtest Implementation ( Dependencies . mis k Testing ) ĊĠ Ġ/* ĠTEST ĠONLY Ġ*/ Ġtest Implementation ( project (": client - mis k ")) ĊĠ Ġ// Ġ********************************* ******* ĊĠ Ġ// ĠCan ĠI Ġmake Ġit Ġany Ġmore Ġobvious ? ĊĠ Ġ// Ġ********************************* ******* Ċ } Ċ Ċ val Ġjar Ġby Ġtasks . getting ( Jar :: class ) Ġ{ ĊĠ Ġbase Name Ġ= Ġ" client - base " Ċ } Ċ Ċ if Ġ( root Project . file (" hooks . gradle "). exists ()) Ġ{ ĊĠ Ġapply ( from Ġ= Ġroot Project . file (" hooks . gradle ")) Ċ } Ċ Ċ apply ( from Ġ= Ġ"$ rootDir / gradle - mvn - publish . gradle ") Ċ