'无法解析符号'使用IntelliJ中pom.xml中的@符号

时间:2016-02-29 16:07:23

标签: xml maven intellij-idea

我有一个Maven pom.xml文件中的错误,当我有一个带有2个@符号的属性,其中包含一些字符。唯一的信息是

cannot resolve symbol 'symbol'.

这不会导致构建或运行应用程序时出错,但它确实会在项目窗口中产生红色下划线(使用IntelliJ IDEA 14)。

我已尝试禁用XML和Maven的检查,但问题仍然存在。

如果我关闭IntelliJ并重新打开,只要我不重新打开pom.xml文件,错误就不会出现。

我找不到任何关于2 @符号在Maven或XML中可能含义的引用,所以我倾向于认为它是IntelliJ特定的东西。

导致此错误的原因是什么以及如何修复它(除了更改属性值或从不打开文件)?

screenshot

1 个答案:

答案 0 :(得分:0)

TL; DR - @ ... @${at} ... ${at}(或:@{ ... {{1}在IDEA中{} } ... ${at}{用于failsafe }

虽然略有不同,但我的案例(涉及IntelliJ IDEA v2017.3.5)是在this answer by Mike的解决方法之后解决的,也就是说,将argLine符号定义为单独的属性,例如@,即在您的测试用例中:<at>@</at><at>@</at>

此解决方案似乎至少适用于<myproperty>${at}hello!${at}</myproperty>(v2.21.0)和argLine(v2.21.0)中使用的maven-surefire-plugin选项,其中我需要包含JVM maven-failsafe-plugin(v0.8.0)的代码覆盖代理的参数。必须使用jacoco-maven-plugin(请参阅failsafe docs)在运行时读取原始属性(具有编译时值${..}),该术语在IntelliJ中未验证。因此,对于我的情况,我们有@{..}${..}@{..}

${at}{..}