What is a transitive Maven dependency?

Your assumption is correct.

There are two types of Maven dependencies:

  • Direct: These are dependencies defined in your pom.xml file under the <dependencies/> section.

  • Transitive: These are dependencies that are dependencies of your direct dependencies.

Dependencies with provided scope are meant to:

  • Either be excluded from the final artifact (for example, for war files you would not want to include servlet-api, servlet-jsp, etc)
  • Or overriden -- where the project that inherits these defines a version and/or overrides the scope