maven-dependencyManagement
阿新 • • 發佈:2018-05-03
dependencyManagement在使用maven去build項目時,很多時候會在parent的pom文件中看到如下代碼:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> <version>2.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>2.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test-autoconfigure</artifactId> <version>2.0.1.RELEASE</version> </dependency> </dependencyManagement>
那麽<dependencyManagement>與<dependency>有什麽區別呢?
- <dependency>是用於直接引入jar,需要實際導入到classpath中。
- <dependencyManagement>相當於對依賴進行版本的管理,並不會直接下載需要的依賴。而只是做一個版本的引用記錄。它的目的主要是統一jar的引用(多個module)。因此,此標簽通常是在parent中。
那麽<dependencyManagement>與<dependency>有什麽聯系呢?
- 當使用<dependency>引入依賴的時候,可以不設置<version>。這個時候,就從<dependencyManagement>去查找對應的依賴,如果存在,則直接下載對應的版本依賴。如果沒有,則會報錯並提示設置<version>。
- 如果<dependency>設置了版本號,則會下載對應的版本jar而忽略<dependencyManagement>的依賴管理。
maven-dependencyManagement