我有一个Maven pom.xml
文件中的错误,当我有一个带有2个@符号的属性,其中包含一些字符。唯一的信息是
cannot resolve symbol 'symbol'.
这不会导致构建或运行应用程序时出错,但它确实会在项目窗口中产生红色下划线(使用IntelliJ IDEA 14)。
我已尝试禁用XML和Maven的检查,但问题仍然存在。
如果我关闭IntelliJ并重新打开,只要我不重新打开pom.xml
文件,错误就不会出现。
我找不到任何关于2 @符号在Maven或XML中可能含义的引用,所以我倾向于认为它是IntelliJ特定的东西。
导致此错误的原因是什么以及如何修复它(除了更改属性值或从不打开文件)?
答案 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}{..}