从 IntelliJ 重建+重新启动不会在 Maven 项目中正确过滤资源中的属性

当我在初始 maven 构建后使用 IntelliJ 重建并重新启动我的软件时,它无法用它们的值替换属性文件中的占位符。

该软件是一个多模块项目,可构建到多个 Web 应用程序。 这些 Web 应用程序一起部署到一个 tomcat 中。

当我用 maven 构建时,它可以工作,并且属性被正确过滤。我可以使用 IntelliJ 的运行配置启动软件并使用它或调试它。但是,当我停止它并稍后通过触发 IntelliJ 的内部构建作为其 tomcat 运行配置的一部分来重新启动软件时,该软件会启动,但未正确过滤属性文件。我收到 bean 初始化错误,其中导致异常类似于 NumberFormatException,因为 Java 无法将 "${timeout}" 解释为数字。

属性在 process-resources 阶段由 copy-resources maven mojo 过滤。

我认为这在不久之前就已经奏效了,所以我认为从根本上没有错。它似乎在大多数情况下仍然有效,但不是全部。该软件由大约 15 个部署在一起的不同网络服务组成,其中只有大约 5 个会出现此问题。

到目前为止,我已经在整个 pom 文件中寻找了 copy-resources mojo 的使用情况。它在超过 50 个不同的地方被调用,但总是以相同的方式使用不同的设置。所以,我认为这基本上是有效的。

这还能是什么?什么会触发这种行为?

该项目是一个大型的异构 java maven 项目,具有非常默认的技术堆栈。如果您知道 IntelliJ 功能、maven 插件或项目结构可能有问题的东西,请随时发表评论。

我的 IntelliJ 版本是 2021.1 Ultimate,maven 版本是捆绑的 3.6.3。

eiance 回答:从 IntelliJ 重建+重新启动不会在 Maven 项目中正确过滤资源中的属性

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/54013.html

大家都在问