package Ġcom . w illiam bl . blue j _ jar Ċ Ċ import Ġorg . apache . log 4 j . spi . LoggerFactory Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Java Plugin Extension Ċ import Ġorg . gradle . jvm . tasks . Jar Ċ Ċ val Ġlogger Ġ= Ġorg . slf 4 j . LoggerFactory . getLogger (" Blue J ĠJ AR ĠExport ") Ċ Ċ /** Ċ Ġ* ĠBlue J ĠJ AR ĠExport Ġplugin Ġfor ĠGradle . Ċ Ġ*/ Ċ class ĠBlue J Jar : ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . register (" blue J Jar ", ĠJar :: class . java , ĠJar :: blue J ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠSet Ġup Ġthe ĠBlue J ĠJ AR Ġtask . Ċ Ġ*/ Ċ fun ĠJar . blue J () Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġ" build " ĊĠĠĠ Ġdescription Ġ= Ġ" Build Ġa ĠJ AR Ġfile Ġwhich Ġcan Ġbe Ġimported Ġas Ġa ĠBlue J ĠProject " ĊĠĠĠ Ġarchive Classifier . set (" blue j ") ĊĊĠĠĠ Ġval Ġjava Ġ= Ġproject . extensions . findBy Type ( Java Plugin Extension :: class . java ) ĊĠĠĠ Ġif Ġ( java Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . error (" Could Ġnot Ġfind ĠJava Ġplugin ! ĠJava Ġis Ġrequired Ġto Ġexport ĠBlue J ĠJ AR s .") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmain Source Set Ġ= Ġjava . source Sets . find ByName (" main ") ĊĠĠĠ Ġif Ġ( main Source Set Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . error (" Could Ġnot Ġfind Ġ` main ` ĠSource ĠSet ! ĠBlue J ĠJ AR ĠExport Ġcurrently Ġdoes Ġnot Ġsupport Ġnon - main ĠSource ĠSet .") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdepends On ( main Source Set . runtime Classpath ) ĊĊĠĠĠ Ġfrom ( main Source Set . output ) ĊĠĠĠ Ġfrom ( main Source Set . java ) ĊĊĠĠĠ Ġfrom ({ ĊĠĠĠĠĠĠĠ Ġmain Source Set . runtime Classpath . filter Ġ{ Ġit . name . endsWith (" jar ") Ġ}. map Ġ{ Ġproject . zip Tree ( it ) Ġ} ĊĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġit . exclude (" META - INF /** ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfrom ({ Ġmain Source Set . runtime Classpath . filter Ġ{ Ġit . name . endsWith (" jar ") Ġ} Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġit . into ("+ libs ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfrom ({ ĊĠĠĠĠĠĠĠ Ġmain Source Set . runtime Classpath . filter Ġ{ Ġit . name . equals (" README . TXT ", Ġtrue ) Ġ|| Ġit . name . equals (" project . blue j ") Ġ}. map Ġ{ Ġproject . zip Tree ( it ) Ġ} ĊĠĠĠ Ġ}) Ċ }