maven中配置項目的jdk版本無效的排查方式
maven配置項目的jdk版本無效排查
最近在配置項目的jdk的時候發(fā)現(xiàn)在pom.xml中配置的1.8版本無效,maven更新后就變成了1.7的jdk。
下面是我pom.xml文件中的配置
?? ?<build> ?? ??? ?<plugins> ?? ??? ??? ?<plugin> ?? ??? ??? ??? ?<groupId>org.springframework.boot</groupId> ?? ??? ??? ??? ?<artifactId>spring-boot-maven-plugin</artifactId> ?? ??? ??? ??? ?<configuration> ?? ??? ??? ??? ??? ?<source>1.8</source> ?? ??? ??? ??? ??? ?<target>1.8</target> ?? ??? ??? ??? ?</configuration> ?? ??? ??? ?</plugin> ?? ??? ?</plugins> ?? ?</build>
后來我在maven的setting.xml文件里面<profiles>標(biāo)簽下發(fā)現(xiàn)了一個配置
?? ??? ?<profile> ?? ??? ??? ?<id>jdk17</id> ?? ??? ??? ?<activation> ?? ??? ??? ??? ?<activeByDefault>true</activeByDefault> ?? ??? ??? ??? ?<jdk>1.7</jdk> ?? ??? ??? ?</activation> ?? ??? ??? ?<properties> ?? ??? ??? ??? ?<maven.compiler.source>1.7</maven.compiler.source> ?? ??? ??? ??? ?<maven.compiler.target>1.7</maven.compiler.target> ?? ??? ??? ??? ?<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> ?? ??? ??? ?</properties> ?? ??? ?</profile>
在網(wǎng)上查了一下這是一個全局的配置,效果是所有使用這個maven的項目的默認jdk設(shè)置為1.7,之后我把這個配置改成1.8的但是還是不行,然后我就覺得可能是我的maven的版本問題,我用的maven版本是3.3.3,然后又下了一個最新版的3.6.0,這一次setting.xml文件只配置了倉庫,沒有配置jdk版本,然后就有效果了,將pom.xml文件里的jdk設(shè)置成其他版本也都有用。
之后又在setting.xml文件里面配置了1.8的jdk,發(fā)現(xiàn)pom.xml文件里的jdk配置沒有用了,之后我有將maven換成3.3.3版本的將它的setting.xml文件里的jdk配置去掉,發(fā)現(xiàn)pom.xml文件里面的jdk配置就有效了。
注意:
使用maven的時候不要在setting.xml文件里面配置jdk,只把jdk配置放到pom.xml文件里面,這樣既不會出現(xiàn)maven版本不支持問題,也方便修改項目的jdk版本。
maven version 指定版本不生效
四個Maven項目A,B,C,D
項目A鎖定了D的版本為1.0
項目B使用項目A作為父項目, 項目B引用了項目C
項目C引用了項目D,并指定D的版本為2.0
出現(xiàn)問題
項目B中D的版本號不是2.0, 而是1.0
原因
傳遞依賴被依賴管理鎖定版本(https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies)
解決
- 方法一:
在B項目中鎖定D的版本為2.0
- 方法二:
在B項目中引入版本為2.0的D
- 方法三:
如果你項目的parent或grandparent是像Spring Boot這種依賴的具體版本定義在properties屬性中, 你也可以在你項目中用properties覆蓋對應(yīng)的版本屬性
比如你項目的parent為spring-boot-starter-parent-1.4.5.RELEASE,而它項目的中elasticsearch版本鎖定在2.4.4
如果你想指定elasticsearch的版本為7.1.1,你可以在你項目POM文件加入以下properties屬性指定.
<properties> <elasticsearch.version>7.1.1</elasticsearch.version> </properties>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Web零xml配置原理以及父子容器關(guān)系詳解
這篇文章主要介紹了Spring Web零xml配置原理以及父子容器關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Java實現(xiàn)讀取TXT和CSV文件內(nèi)容
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)讀取TXT和CSV文件內(nèi)容的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02Maven打包SpringBoot工程的實現(xiàn)示例
在使用Spring Boot和Maven的項目中,你可以使用Maven來打包你的項目,本文主要介紹了Maven打包SpringBoot工程的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-05-05基于idea解決springweb項目的Java文件無法執(zhí)行問題
這篇文章給大家介紹了基于idea解決springweb項目的Java文件無法執(zhí)行問題,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02