Maven: Ein Java-basiertes Dependency-Management und Build Tool für (hauptsächlich Java-)Projekte/Sourcen
Mit Maven kannst du also aus den Sourcen deines Projektes:
- ein jar/war/ear/... bauen lassen
- Dokumentationsseiten per JavaDoc generieren lassen
- Projektdokumentation per Site-Plugin generieren lassen
- Die gebauten Artefakte auf einem Maven Repository deployen lassen
- Abhängigkeiten deklarieren und von einem Maven-Repository automatisch downloaden lassen
Maven beschreibt also per Convention-over-Configuration wovon dein Projekt abhängt, und was es ist (ein jar oder war oder ear, ...).
Jenkins: Ein Continuous Build/Delivery und Integration Server mit Web-basierter Benutzeroberfläche, mit dem man z.B. Ant-, Gradle, Shellscript-, und eben auch Maven-basierte Projekte bauen lassen kann und diverseste Aktionen vor, während und nach dem Build anstoßen kann (wie etwa E-Mail Benachrichtigung wenn der Build fehlgeschlagen ist oder erfolgreich war, Upload der Build-Artefakte auf einem File-server, Maven repository, FTP-Server, oder sonstwo hin, Anstoßen abhängiger Builds/Jobs,...).