Maven Intellij无法使用$revision解析pom.xml。马文工厂
Maven Intellij无法使用$revision解析pom.xml。马文工厂,maven,intellij-idea,pom.xml,parent-pom,Maven,Intellij Idea,Pom.xml,Parent Pom,${revision}标记可以在pom.xml中使用,如下所述 具有此目录结构: fix ├── pom.xml ├── parent │ └── pom.xml └── example └── pom.xml pom.xml具有: <project> <groupId>intellij</groupId> <artifactId>fix</artifactId> <version>${
${revision}
标记可以在pom.xml中使用,如下所述
具有此目录结构:
fix
├── pom.xml
├── parent
│ └── pom.xml
└── example
└── pom.xml
pom.xml具有:
<project>
<groupId>intellij</groupId>
<artifactId>fix</artifactId>
<version>${revision}</version>
<properties>
<project.parent.basedir>parent</project.parent.basedir>
</properties>
<packaging>pom</packaging>
<modules>
<module>parent</module>
<module>example</module>
</modules>
<modelVersion>4.0.0</modelVersion>
</project>
<project>
<groupId>intellij</groupId>
<artifactId>parent</artifactId>
<properties>
<revision>1.0.0</revision>
</properties>
<parent>
<groupId>intellij</groupId>
<artifactId>fix</artifactId>
<version>${revision}</version>
</parent>
<packaging>pom</packaging>
<modelVersion>4.0.0</modelVersion>
</project>
intellij
而终端上的mvn
则能很好地解析并工作
这破坏了IntelliJ中的许多内容。
我用IntelliJ 2019.2尝试了这个,只是一个提示。如果使用该结构执行简单的mvn clean
on命令,您将看到:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] parent 1.0.0 ....................................... SUCCESS [ 0.146 s]
[INFO] example 1.0.0 ...................................... SUCCESS [ 0.003 s]
[INFO] fix ${revision} .................................... SUCCESS [ 0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ example ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for fix 1.0.0:
[INFO]
[INFO] fix ................................................ SUCCESS [ 0.106 s]
[INFO] parent ............................................. SUCCESS [ 0.003 s]
[INFO] example ............................................ SUCCESS [ 0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.255 s
[INFO] Finished at: 2020-01-28T20:56:22+01:00
[INFO] ------------------------------------------------------------------------
这表明这里有问题…因为版本属性无法在根pom中解析…这就是IDEA IntelliJ告诉您有问题的原因…正如您在最后一行看到的根项目,这表明存在问题
如果将修订属性正确地移动到根项目(修复)中,您将看到:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] parent 1.0.0 ....................................... SUCCESS [ 0.146 s]
[INFO] example 1.0.0 ...................................... SUCCESS [ 0.003 s]
[INFO] fix ${revision} .................................... SUCCESS [ 0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ example ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for fix 1.0.0:
[INFO]
[INFO] fix ................................................ SUCCESS [ 0.106 s]
[INFO] parent ............................................. SUCCESS [ 0.003 s]
[INFO] example ............................................ SUCCESS [ 0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.255 s
[INFO] Finished at: 2020-01-28T20:56:22+01:00
[INFO] ------------------------------------------------------------------------
在该输出中,您可以在第一行看到正确的fix
我强烈建议您正确更改结构,并且不要在示例
项目中使用。/parent/pom.xml
,因为这表明您的目录结构并不代表您在pom文件中创建的真实结构
这将产生我创建的github示例项目中给出的结构:
除此之外,请将文档中描述的扁平化maven插件
添加到您的项目中,否则在使用mvn clean install
或mvn clean deploy
的情况下,您将失败。您应该将版本属性的属性定义从父级移动到项目的根级(修复工件)。此外,我强烈建议避免使用既是模块又是父级的父级…首先,感谢您花时间研究此问题。这解决了问题。您可能觉得这很明显,但我继承的项目有187个pom.xml文件,为了获得一个简单的示例,我有点费劲修复它。我将尝试改变结构,但这取决于它是否符合我的发展议程。我们已经启用了Flatte maven插件和许多其他插件…再次干杯并感谢!我知道现实生活是怎样的,因为我已经用更大的pom(800+模块等)完成了几个项目…所以毫不奇怪。哇,800+!这是一个更大的泥球