We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Bach Builds (on(ly)) Java Modules

Formal Metadata

Title
Bach Builds (on(ly)) Java Modules
Title of Series
Number of Parts
637
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Java build tools were developed before Java modules were around -- Bach builds (on(ly)) Java modules! The JDK contains a set of foundation tools 1 but none of them guides developers from processing Java source files into shippable products: be it a reusable modular JAR file with its API documentation or an entire custom (soon static 2) runtime image. There exists an implicit workflow encoded in the available options of the foundation tools. The (binary) output of one tool is the input of one or more tools. With the introduction of modules in Java 9 some structural parts of that workflow got a) promoted into the language itself and b) resulted in explicit module-related tool options. These structural information, encoded explicitly by developers in Java's module descriptors, can be used as basic building blocks when describing a modular Java project. I think of it as a "project-info.java" file -- which I don't propose to introduce (as a part of the language) -- but it helps to transport the basic idea.