A complete build.gradle
for working with Java projects. You will need to update the applicationMainClass
variable on line 6 to point at your application's main class.
plugins { id "application"; } application { def applicationMainClass = "package.MainClass"; mainClass = project.hasProperty("mainClass") ? project.getProperty("mainClass") : applicationMainClass; } repositories { mavenCentral(); } run { standardInput = System.in; } /* convenience tasks for working with a project */ tasks.register("createMissingSourceDirs") { group = "Project"; description = "Create all of the missing source directories for this project."; doFirst { sourceSets.each { def sourceRoot -> sourceRoot.allSource.srcDirTrees.each { def sourceDir -> if(!sourceDir.dir.exists()) { println "Creating ${sourceDir}"; mkdir sourceDir.dir; } } } } } tasks.register("deleteEmptySourceDirs") { group = "Project"; description = "Delete empty source directories."; doFirst { sourceSets.each { def sourceRoot -> sourceRoot.allSource.srcDirTrees.each { def sourceDir -> if(sourceDir.dir.exists() && sourceDir.dir.isDirectory() && sourceDir.dir.list().length == 0) { println "Removing empty ${sourceDir}"; sourceDir.dir.delete(); } } } } } tasks.register("openProjectDir") { group = "Project"; description = "Open the project directory in the system file manager."; doFirst { println("Opening: " + file(projectDir)); java.awt.Desktop.getDesktop().open(file(projectDir)); } } tasks.register("openBuildDir") { group = "Project"; description = "Open the project build directory in the system file manager."; doFirst { println("Opening: " + file(buildDir)); java.awt.Desktop.getDesktop().open(file(buildDir)); } } tasks.register("createGitIgnore") { group = "Project"; description = "Create the project's .gitignore file."; def gitIgnored=""" .gradle/ .nb-gradle/ nbproject/ build/ bin/ dist/ tmp/ .classpath .project *.zip *.tgz *.tar.gz *.class *.jar .DS_Store !gradle-wrapper.jar """; doLast { def file = new File(projectDir, ".gitignore"); if ( !file.exists() ) { println("Creating .gitignore"); gitIgnored.lines().each { f -> if(!f.trim().isBlank()) { file.append(f.trim()+"\n"); } } } else { println(".gitignore already exists"); } } }