https://www.youtube.com/watch?v=UqnwQp1uHuY

Why Use Modules?

Java modules make your dependencies more explicit. This is shown in an example where importing a class introduced transitively will fail to build.

Modules let you define code only internal to your project and will help prevent external projects from inheriting or using that code.

This lets you define boundaries for your internals and helps prevent illegal access errors.

A Module lets you declare documentation

Incremental Modularization

This part of the talk covers strategies on converting existing projects to use modularization.

There are two three types of modules -

When converting a project, there are three strategies

Roadblocks

One roadblock that stood out to me is that when external packages are not set up for modularization, they may throw exceptions that are misleading (Unsupported Media Type). In these instances, you must debug the logs - for module keywords.

Most issues or roadblocks tend to arise from projects that are using ≤ Java 8

Don’t get stuck on fixing dependencies. Identify the root cause and then open an issue.