Migrating to Modules
summary
Modularizing a large Java app is hard but practical: upgrade tooling (jenv/jabba, Maven toolchains), run jdeps to generate module-info, fix dependency cycles and split packages, adjust reflective code and add requires transitive or exports for frameworks, then use moditect repackaging or publish modularized jars to Nexus so jlink can run. jlink produces small runtime images (examples around 95–100 MB). Automatic modules work at runtime but jlink rejects them; some libraries (EclipseLink, Hibernate) block progress and require manual work.
AI-written summary · about
chapters (33)
- 0:00Intro
- 0:59Migrating to Modules
- 10:02Tooling Support
- 12:23Maven Toolchain
- 13:09Java Visibility Pre-Java 9
- 13:49Java Accessibility
- 14:28Class Loading & Module System
- 14:44Module Definition
- 17:18Modularization Process
- 18:55Modularizing Maven Projects
- 21:11Visualizing Dependencies
- 21:54Analyze Project Structure
- 23:16Dependency Cycles
- 24:29Split Packages
- 25:30Java EE Dependencies
- 28:07Reflection: Qualified Exports
- 30:27Module Graphs
- 31:54Implementing Plugins
- 32:26Transitive Dependencies
- 34:00Services Example
- 34:40Defining Service API
- 34:53Service Implementation
- 35:14Services in Action
- 35:43Troubleshooting
- 38:46Maven jlink Plugin
- 39:07Non-modularized Dependencies
- 43:34Generated Modules & Compiler
- 43:46Configuring Main Class
- 44:04Create a jlink Module
- 44:14jlink Plugin Configuration
- 44:31Dependencies Caveat
- 45:57Summary
- 46:50Resources
related talks
48mThe Java Module System in practice
54mBeginning Java 9 Modules
50mRefactoring your code to Java 9 modules
49mTo JAR Hell And Back - A Live Migration to the Java 9 Module System
15mMigrating to Java 9 Modules with ModiTect
49mModular Development with JDK 9
01h 02mJava 9 Modularity in Action
51mModules in One Lesson
