maven依賴的version聲明控制方式

maven依賴的version聲明控制

在寫新的springcloud項目時

啟動報錯Correct the classpath of your application so that it contains a single, compatible version of ……..

大意是確保jar包的版本兼容且唯一.

為什麼會出現這種情況呢?因為父模塊聲明瞭某個jar包的版本,子模塊導入時不應再聲明version,不然會沖突.當然,一般人也不會傻傻地再聲明版本,復雜的情況是:父模塊聲明的jar包內部包含的某個jar包被子模塊導入,但子模塊不知道父模塊包含此jar包,才會再次聲明version.

下面以springcloud的註冊中心模塊舉例

父模塊le,註冊中心模塊le-registry,解釋全在圖上:

maven設置依賴version屬性

在pom.xml文件中:

1、加入profiles

 <profiles>
  <profile>
  <activation>
  <property>
  <name>spring.version</name>
  <value>4.0.0.RELEASE</value>
  </property>
  </activation>
  </profile>
 </profiles>

2、version處用${name}替代

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>${spring.version}</version>
</dependency>

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: