Getting Started with Maven | Maven Preparation | JDK and Build Tools

Java development is done with a tool called the JDK. This is probably one of the first things written in Java introductory books. The JDK includes the Java runtime and compiler, so saying that you develop with it is certainly correct. But is the JDK alone really enough? In reality, more is needed.

These days, almost no one develops Java by saying, “I compile programs using only the JDK.” Modern programs have very complex structures. They include multiple source code files, various resources, configuration files that describe concrete information, and many frameworks and libraries that use XML data. How many people neatly organize all of these and compile them directly with the JDK?

As the number of files required by a program increases, more people use full-fledged development tools instead of only the JDK. Among Java developers, many people may have only developed with Eclipse. If you ask such developers to develop from the command line, most of them will not know what to do.

Development tools such as Eclipse are convenient, but they also have a problem: you can only use projects created by that development tool. Even if the development environment changes to another tool, the project may not be migratable. If someone sends you a project, it may have been created with a development tool you have never seen, and you may not be able to use it.

Differences between development tools affect projects because each tool does not provide a common project format. In this situation, development using “build tools” has recently attracted particular attention.

What Is a Build Tool?

A build tool is a dedicated program for basic work such as project creation, test builds, and deployment. Strictly speaking, it should probably be called a “project management tool,” but the term “build tool” is more widely used.

Build tools use commands to create projects, run builds, and perform other tasks. Because various tasks can be performed with commands, it is relatively easy to use build tools inside various development tools. As a result, more recent development tools support build tools and can create and build projects internally by using them.

Because project creation and builds are actually performed by the build tool, projects can be migrated more easily to other tools that support the same build tool. Also, projects generated by a build tool usually have almost the same file structure, so development can proceed in almost the same way even if development rules differ.

Build tools also read files that describe build contents, called build files, and process them. If you understand the build file, you can manage the project in detail.

As project complexity increases, build tools become more important.