- Maven - Uses XML configuration for declaring project structure, dependencies, and plugins. Not the prettiest, but the most straight forward of the systems for the most part.
- Gradle - Uses Groovy to create a build script with configuration-like declarations. Incredibly flexible, but potentially to your own detriment. Easy to overcomplicate builds, and the plugin system deprecates dozens of features every release so updating often breaks your builds.
- Saker.build - An interesting alternative to Gradle that supports more than just Java projects.
- ASM - Arguably the best Java bytecode library out there currently. Its fast, abstracts away a lot of tedious aspects of the class file format, and is extremely well maintained.
- ByteBuddy - Code generation / manipulation library built on top of ASM. Simplifies usage of ASM by a significant degree.
- picocli - "A mighty tiny CLI" is indeed a well-deserved description. Add a few annotations to classes representing your command line flags and arguments and the rest is done automatically for you.
- Primitives - Honestly, any of them work. They all offer primitive collection implementations.
- Feather - Ultra-lightweight JSR-330 complaint library.
- Dirk - Lightweight and customizable DI framework supporting JSR-330, Jakarta-Inject, and CDI. Documentation in main readme is top-notch.
- Weld - Moving beyond DI, CDI offers a set of additional useful features. Weld is the CDI reference implementation.
- ssbus - Performance oriented event bus using runtime class generation.
- deencapsulation & Venuzdonoa - Don't like Java 9+ modules? Just disable the module system then!
- Objenesis - Allow instantiation of any object type by bypassing the constructor. Can be quite useful in some circumstances.
- Gson - The most popular Json library. API is stupid simple and is easily configured, though most situations should work out of the box.
- Kryo - Automatic binary serialization that isn't terrible. Highly configurable and can yield incredibly compact data formats when used well.