Maven3 package时报 'version' contains an expression but should be a constant

简介: 父pom文件: 4.0.0 com.wey WEY ${com.wey.version} pom 子Module 4.0.0 com.wey WEY ${com.wey.version} pom package web工程时报 'version' contains an expression but should be a constant这个错误提示,这是因为Maven3 不允许出现version为非常量值的情况。

父pom文件:

<modelVersion>4.0.0</modelVersion>
<groupId>com.wey</groupId>
<artifactId>WEY</artifactId>
<version>${com.wey.version}</version>
<packaging>pom</packaging>
子Module
<modelVersion>4.0.0</modelVersion>
<groupId>com.wey</groupId>
<artifactId>WEY</artifactId>
<version>${com.wey.version}</version>
<packaging>pom</packaging>

package web工程时报 'version' contains an expression but should be a constant这个错误提示,这是因为Maven3 不允许出现version为非常量值的情况。

那么就将版本号改成常量后可以正常打包:

父pom文件:

<modelVersion>4.0.0</modelVersion>
<groupId>com.wey</groupId>
<artifactId>WEY</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

子Module

<parent>
	<groupId>com.wey</groupId>
	<artifactId>WEY</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<relativePath>../WEY/pom.xml</relativePath>
</parent>
<artifactId>WEY.WebApp</artifactId>
<packaging>war</packaging>
<name>WEY.WebApp Maven Webapp</name>
<url>http://maven.apache.org</url>
如果更新版本号一个文件一个文件的去改太麻烦,可以用以下命令一次性更新版本号:
>mvn versions:set -DnewVersion=0.0.2-SNAPSHOT
>mvn versions:update-child-modules
更新的父及子Module的版本号都改成了0.0.2-SNAPSHOT.
<modelVersion>4.0.0</modelVersion>
<groupId>com.wey</groupId>
<artifactId>WEY</artifactId>
<version>0.0.2-SNAPSHOT</version>
<packaging>pom</packaging>


<parent>
	<groupId>com.wey</groupId>
	<artifactId>WEY</artifactId>
	<version>0.0.2-SNAPSHOT</version>
	<relativePath>../WEY/pom.xml</relativePath>
</parent>
<artifactId>WEY.WebApp</artifactId>
<packaging>war</packaging>
<name>WEY.WebApp Maven Webapp</name>
<url>http://maven.apache.org</url>

Maven还会生成一个pom.xml.versionsBackup的备份文件。

提交更新:

>mvn versions:commit

 
目录
相关文章
|
6月前
|
Java 测试技术 Maven
maven 打jar包:mvn clean package
maven 打jar包:mvn clean package
81 7
|
jenkins Java 持续交付
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
|
6月前
|
Java Maven
Maven实战 Item4 -- Maven核心概念_maven junit version(1)
Maven实战 Item4 -- Maven核心概念_maven junit version(1)
|
6月前
|
Java Linux Maven
IDEA的maven的package打包
IDEA的maven的package打包
71 1
|
6月前
|
Java 测试技术 Maven
maven的package、install、deploy命令
maven的package、install、deploy命令
141 0
|
6月前
|
Java Maven
maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题
maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题
|
6月前
|
Java Maven
【解决】maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题...
【解决】maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题...
|
Java Maven
Maven项目打包版本号管理——Maven Project Version插件
Maven项目打包版本号管理——Maven Project Version插件
1064 0
|
Java Maven 开发工具
Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题
Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题
450 0
|
Java Maven
使用maven构建项目报错Cannot change version of project facet Dynamic Web Module to 3.0解决方案
使用maven构建项目报错Cannot change version of project facet Dynamic Web Module to 3.0解决方案
使用maven构建项目报错Cannot change version of project facet Dynamic Web Module to 3.0解决方案