import Ġcom . github . jen gel man . gradle . plugins . shadow . tasks . Shadow Jar Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġjava ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 7 . 0 . 0 " Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation (" com . google . code . gson : gson : 2 . 8 . 7 ") ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter : 5 . 7 . 0 ") Ċ } Ċ Ċ tasks . test Ġ{ ĊĠĠĠ Ġuse JUnit Platform () Ċ } Ċ Ċ source Sets Ġ{ ĊĠĠĠ Ġregister (" cli ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Classpath Ġ+= Ġmain . get (). compile Classpath ĊĠĠĠĠĠĠĠ Ġruntime Classpath Ġ+= Ġmain . get (). compile Classpath ĊĠĠĠĠĠĠĠ Ġcompile Classpath Ġ+= Ġmain . get (). output ĊĠĠĠĠĠĠĠ Ġruntime Classpath Ġ+= Ġmain . get (). output ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . register < Shadow Jar >(" fl att ener Jar ") Ġ{ ĊĠĠĠ Ġarchive Classifier . set (" fl att ener - cli ") ĊĠĠĠ Ġfrom ( source Sets . main . get (). output ) ĊĠĠĠ Ġfrom ( source Sets [" cli "]. output ) ĊĠĠĠ Ġconfigurations Ġ= Ġmutable ListOf ( project . configurations . compile Classpath . get ()) ĊĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes (" Main - Class " Ġto Ġ" e ut ro . json fl att ener . cli . Fl att ener Main ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . register < Shadow Jar >(" expand er Jar ") Ġ{ ĊĠĠĠ Ġarchive Classifier . set (" expand er - cli ") ĊĠĠĠ Ġfrom ( source Sets . main . get (). output ) ĊĠĠĠ Ġfrom ( source Sets [" cli "]. output ) ĊĠĠĠ Ġconfigurations Ġ= Ġmutable ListOf ( project . configurations . compile Classpath . get ()) ĊĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes (" Main - Class " Ġto Ġ" e ut ro . json fl att ener . cli . Expand er Main ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . build Ġ{ ĊĠĠĠ Ġdepends On (" fl att ener Jar ") ĊĠĠĠ Ġdepends On (" expand er Jar ") Ċ } Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġregister < Maven Publication >(" maven Java ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( tasks . jar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt By ( tasks . jar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( tasks [" sources Jar "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt By ( tasks [" sources Jar "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠ Ġ} Ċ } Ċ