Chances are that you will work on projects with more with one Java files.
Plus you may be using resources from third party developers in the form of JAR files.
There may also be a need to execute a command before of after a build occurs.
Sample commands to execute could include emailing status, setting up environment variables, deleting files or creating setup packages.
To handle this build and dependency systems were created. The more popular build and dependency systems are Maven, Gradle and Ant.
I think that first came Ant, then came Maven and finally Gradle. Each build system has their own idiosyncrasies, faults and strengths.
For more information regarding build systems and tools you may want to check out the build system's home page.
Some people who know these tools hang our around on the CodeRanch build areas found here https://coderanch.com/c/build-tools.
You should really become more then just aware of one or more of these systems. I believe that this BlackJack may be using Maven and/or Gradle.
“The strongest of all warriors are these two — Time and Patience.” ― Leo Tolstoy, War and Peace
The Blackjack project in our Corral repo uses Maven. Currently it consists of a parent project (with a pom.xml in the root folder) and a core module project (with a pom.xml in the core folder).
The parent POM contains common settings for all modules. For instance, it sets the project version that will be used for every module, it sets the source version and encoding, and it configures commonly used dependencies (such as JUnit and Hamcrest). It also says what license we use and contains information about our team.
The core module POM declares what dependencies the core module relies on and what plugins it needs to build the project. It inherits configuration from the parent POM.
Maven reads these settings and uses them to compile, test and package the code. To do this locally, download Maven and run mvn package.