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 … Read more

What’s the difference between implementation, api and compile in Gradle?

tl;dr Just replace: compile with implementation (if you don’t need transitivity) or api (if you need transitivity) testCompile with testImplementation debugCompile with debugImplementation androidTestCompile with androidTestImplementation compileOnly is still valid. It was added in 3.0 to replace provided and not compile. (provided introduced when Gradle didn’t have a configuration name for that use-case and named … Read more