1、问题描述
文章标题有限,所以就写了后面一部分吗,在对springboot项目进行maven打包的时候,出现的错误
'version' contains an expression but should be a constant.xxxxxxxxxx
resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM
2、原因分析
version 主要是是pom中中版本号,通常子工程会按照父工程的版本号来执行。翻译成中文意思是:“version 版本号不能使用表达式,应该使用一个写死的常量 ${blade.project.version}”,
<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">
<parent>
<artifactId>springboot-test1</artifactId>
<groupId>com.test</groupId>
<version>${blade.project.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>com.test</artifactId>
问题就是在 “ ${blade.project.version} ” 这个地方
这个 version 标签里面不能使用表达式;必须是一个具体的版本号才行;
3、问题解决
既然知道了问题,就知道怎么着手解决了
方案一、修改版本号
将version 标签内容改为一个具体的版本即可
<version>1.0.1</version>
**方案二、使用maven插件变更版本号
注意:这个命令一定要在父项目的根目录下执行才有效
mvn -N versions:update-child-modules
这个命令是每个子module工程中生成一个名为pom.xml.versionsBackup的文件,这个文件和原来的 pom.xml 内容是一样,只是有一点不同,pom.xml.versionsBackup是将 version 标签的内容改为了具体的版本。
然后在执行mvn clean install 命令就可以正常打包了。