You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2019/01/15 15:32:46 UTC
[maven-site] 01/02: Recommend users to directly specify
dependencies when using them directly
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-site.git
commit 15cdcc9fb9cf78d1aba0f20e3341111a260dc7c9
Author: John Lin <jo...@gmail.com>
AuthorDate: Mon Jan 14 13:47:35 2019 +0800
Recommend users to directly specify dependencies when using them directly
The discussion is in
https://lists.apache.org/thread.html/10b53804b5a18565f7f1a0677300d7f5c5fce539c94d9bad44efa6b1@%3Cusers.maven.apache.org%3E
---
.../introduction/introduction-to-dependency-mechanism.apt | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/content/apt/guides/introduction/introduction-to-dependency-mechanism.apt b/content/apt/guides/introduction/introduction-to-dependency-mechanism.apt
index 4d89d94..0b451c1 100644
--- a/content/apt/guides/introduction/introduction-to-dependency-mechanism.apt
+++ b/content/apt/guides/introduction/introduction-to-dependency-mechanism.apt
@@ -104,6 +104,16 @@ Introduction to the Dependency Mechanism
[]
+ Although transitive dependencies can help you to include desired dependencies, it is a good practice that you directly
+ specify the dependencies you are directly using in your own source code. This best practice proves its value especially
+ when the dependencies of your project constantly changes their dependencies. Assume that your project A specifies a
+ dependency on another project B, and project B specifies a dependency on project C. If you are directly using components
+ in project C, and you don't specify project C in your project A, it may cause build failure when project B suddenly
+ updates/removes its dependency on project C. Another reason to directly specify dependencies is that it provides better
+ documentation for your project: one can learn more information by just reading the POM file in your project. Maven also
+ provides a plugin {{{https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html}dependency:analyze mojo}}
+ for analyzing the dependencies and making this best practice more achievable.
+
* {Dependency Scope}
Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for