Return to site

Java Librairies Best Practices

April 23, 2022
  1. ๐Ÿ‘‰ JLBP-1: Minimize dependencies
  2. ๐Ÿ‘‰ JLBP-2: Minimize API surface
  3. ๐Ÿ‘‰ JLBP-3: Use Semantic Versioning
  4. ๐Ÿ‘‰ JLBP-4: Avoid dependencies on unstable libraries and features
  5. ๐Ÿ‘‰ JLBP-5: Do not include a class in more than one classpath entry
  6. ๐Ÿ‘‰ JLBP-6: Rename artifacts and packages together
  7. ๐Ÿ‘‰ JLBP-7: Make breaking transitions easy
  8. ๐Ÿ‘‰ JLBP-8: Advance widely used functionality to a stable version
  9. ๐Ÿ‘‰ JLBP-9: Support the minimum Java version of your consumers
  10. ๐Ÿ‘‰ JLBP-10: Maintain API stability as long as needed for consumers
  11. ๐Ÿ‘‰ JLBP-11: Keep dependencies up to date
  12. ๐Ÿ‘‰ JLBP-12: Make level of support and API stability clear
  13. ๐Ÿ‘‰ JLBP-13: Remove references to deprecated features in dependencies at the first opportunity
  14. ๐Ÿ‘‰ JLBP-14: Specify a single, overridable version of each dependency
  15. ๐Ÿ‘‰ JLBP-15: Publish a BOM for multi-module projects
  16. ๐Ÿ‘‰ JLBP-16: Ensure upper version alignment of dependencies for consumers
  17. ๐Ÿ‘‰ JLBP-17: Coordinate rollout of breaking changes
  18. ๐Ÿ‘‰ JLBP-18: Only shade dependencies as a last resort
  19. ๐Ÿ‘‰ JLBP-19: Place each package in only one module
  20. ๐Ÿ‘‰ JLBP-20: Give each JAR file a module name
  21. ๐Ÿ‘‰ JLBP-21: Upload artifacts to Maven Central
  22. ๐Ÿ‘‰ JLBP-22: Declare all direct dependencies