在我的mac osx上的intellij maven中禁止父定义中的java属性
我对MAC Intellij上的maven配置有一个问题。我得到一个错误,在子POM的父标记中,${a-web.version}“禁止父定义中的属性”。xml以及在父POM中定义的属性。xml。 但同样的配置在我的Windows Intellij上运行良好
下面是我的父母POM。xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>***</groupId>
<artifactId>a-web</artifactId>
<packaging>pom</packaging>
<version>${a-web.version}</version>
<name>a-web project</name>
<url>http://***</url>
<properties>
<a-web.version>1.0.0</a-web.version>
</properties>
<modules>
<module>a-core</module>
<module>a-web</module>
</modules>
</project>
这是我的孩子波姆。配置父块的xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>a-web</artifactId>
<groupId>***</groupId>
<version>${a-web.version}</version>
<relativePath>../</relativePath>
</parent>
<artifactId>aweb-web</artifactId>
<version>${a-web.version}</version>
<packaging>war</packaging>
<name>aweb-web</name>
</project>
我从stackoverflow尝试了很多方法,但没有人能解决它。我想知道为什么这个Maven配置在Mac和windows中有不同的行为,以及如何修复它
# 1 楼答案
因为您的maven版本低于3.5.2,所以请尝试使用>=3.5.2,当ide intellij idea捆绑maven版本低于3.5.2时,尝试下载zip集以使用您自己的maven,而不是捆绑的maven
顺便说一句,虽然maven低于3.5.2显示intellij idea中存在错误,但它工作正常,可以“mvn包”成功
# 2 楼答案
这是IntelliJ的想法缺陷
至少在IntelliJ IDEA 2019.2(终极版)中 建造#IU-192.5728.98,建造于2019年7月23日
# 3 楼答案
当项目开始在我刚刚拉出来的提交中使用父版本属性时,我遇到了非常类似的情况。该项目不会建造,而且感觉“进口不好”。在IDEA没有提供任何细节的情况下,试图展示有效的pom失败了
正如@khmarbaise在评论[1]中指出的,在maven
<parent>
声明中对属性的使用有一些限制——最值得注意的是需要maven 3.5+。这个想法可能没有使用足够新的maven(我安装的最新想法中捆绑的那一个太旧了),所以我不得不使用设置>;构建、执行、部署>;构建工具>;Maven>;Maven主目录。一旦指向较新的版本,它就不会立即开始工作——一些重新启动/重建/重新导入例程导致新设置生效,项目成功导入并再次生成尽管在pom中强制执行了maven版本要求,但这并没有导致IDEA抱怨它使用的maven版本太旧。IDEA缺乏任何细节,无法用它使用的maven检查项目,这也没有帮助。现在,当一切正常时,它仍然在pom文件中表示“禁止父定义中的属性”
[1]https://maven.apache.org/maven-ci-friendly.html