What is Maven?
Introduction
Maven is a Java dependency manager
Dependencies
Description
A dependency is a set of classes that provide functionalities to a Java project.
Scope
Each dependency can define its scope
, used to limit the transitivity of a dependency and to determine when a dependency is included in a classpath.
There are 6 different scopes:
compile
: default scope, if none is defined. The dependency is available in all classpaths of a projectprovided
: similar tocompile
, but JDK or a container is expected to provide the dependency at runtimeruntime
: the dependency is not required for compilation, but is for executiontest
: the dependency is only available for test compilation and execution phases; not transitivesystem
: similar toprovided
, except that a JAR that contains it is explicitly provided; the artifact is always available and is not looked up in a repositoryimport
: only support on a dependency of typepom
in the<dependencyManager>
section. The dependency is to be replaced with the effective list of dependencies in the specified POM’s<dependencyManagement>
section. Since they are replaced, dependencies with a scope ofimport
do not actually participate in limiting the transitivity of a dependency
Annotations
@Data
: Lombok dependency annotation that bundles the features of@ToString
,@EqualsAndHashCode
,@Getter / @Setter
and@RequiredArgsConstructor
together