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。
推薦閱讀:
- 關於pom.xml中maven無法下載springcloud包問題
- 關於springboot集成swagger3時spring-plugin-core報錯的問題
- Maven依賴管理的用法介紹
- springcloud gateway無法路由問題的解決
- SpringCloud整合Consul的實現