✔ Dependencies work during compile-time and runtime (inside your Java application).
✔ Plugins work during build-time (before the .jar
or .war
is created).
✔ Dependencies are external libraries that your code needs to compile and run.
✔ They are included in the final .jar
file (if required at runtime).
✔ Examples: Spring Boot, Lombok, JUnit, Jackson (JSON parsing).
✔ Plugins are tools that help build, test, and package your application.
✔ They run before your .jar
is built (but are NOT included in the final .jar
).
✔ Examples: Maven Compiler Plugin, SonarCloud Plugin, JaCoCo, Surefire (for running tests).
Stage | Dependencies (Inside <dependencies> ) |
Plugins (Inside <build><plugins> ) |
---|---|---|
Compile Time | ✅ Required for compiling Java code | ✅ Helps compile code (Maven Compiler Plugin) |
Build Time (Before .jar is Created) | ❌ Not used (already compiled) | ✅ Runs tasks like code analysis, test execution, and packaging |
Runtime (After .jar is Created) | ✅ Included in the .jar if needed |
❌ Not included in the .jar |
Deployment (When Running in Production) | ✅ Needed if it’s a runtime dependency | ❌ Not needed |