[英]How is the maven version specified in Spring Boot Starters?
我讀了參考,但我不明白如何在依賴項中設置versionId。 例如, MongoDB啟動器指定
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<exclusions>
<exclusion>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
但缺少version
標記。 使用這些啟動時mongodb-driver
的版本如何確定?
啟動器atrifacts的版本在啟動器父級中進行管理。 例如,如果你的POM中有這個:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
然后,您引用的任何引導啟動程序依賴項都將具有版本2.0.2.RELEASE,除非您覆蓋默認值並由於某種原因提供您自己的版本。
這不僅與初學者有關,如果項目中有許多模塊,他們有不同的依賴關系。 作為常規練習,有一個帶有常規設置的父pom.xml
。
如果您在子maven模塊中看到依賴,如下所示:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
父pom
有一個配置的依賴項,如:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
通常,配置具有屬性的版本更靈活:
<properties>
<commons-lang3.version>3.5</commons-lang3.version>
</properties>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
MongoDb
版本使用依賴關系管理機制在spring-boot-dependencies中定義。
<properties>
<mongodb.version>3.8.0-beta2</mongodb.version>
<properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>${mongodb.version}</version>
</dependency>
<dependencies>
<dependencyManagement>
依賴管理是一種集中依賴信息的機制。 如果有一組繼承了公共父項的項目,則可以將所有關於依賴項的信息放在公共POM中,並且可以更簡單地引用子POM中的工件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.