最近因為 dependbot 的更新,才知道如何指定 maven 專案的 maven 版本。
在專案內加上 <prerequisites> tag 即可
以下這樣就是指定這個專案得用 maven 3.0 才能編譯
<?xml version='1.0' encoding='UTF-8'?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<prerequisites>
<maven>3.0</maven>
</prerequisites>
<!-- 其餘省略 -->
</project>
maven compiler / deploy ……等 plugin
我這次發現這問題,是因為 dependbot 提出以下的修改«Bump org.apache.maven.plugins:maven-compiler-plugin from 3.8.1 to 3.14.1»
更新完畢後,我原本使用的 maven v3.5.4 就無法編譯專案了。
後來去查該專案的maven-compiler-plugin-3.8.1、maven-compiler-plugin-3.14.1 這兩個版本差異
可以看到他的 prerequisites > maven 的值,從 3.0 改成 3.6.1 ,所以才沒辦法編譯,得改用 maven v3.6.1 以上的版本才行。
通常 library 都是指定 java 版本,很少會遇到需要指定 maven 版本的
但 maven compiler / deploy ……等 plugin 就不一樣了,這幾個會指定 maven 版本很合理。
沒有留言:
張貼留言