【问题标题】:Is command org.springframework.ide.eclipse.boot.validation.springbootbuilder needed by STS4-Eclipse?STS4-Eclipse 需要命令 org.springframework.ide.eclipse.boot.validation.springbootbuilder 吗?
【发布时间】:2020-10-12 12:57:36
【问题描述】:

我记得将我的 Eclipse 工作区从 STS3 升级到 STS4 的步骤之一是从 .project 文件中删除命令 org.springframework.ide.eclipse.core.springbuilder,如 https://github.com/spring-projects/sts4/wiki/STS3-Migration 中所述。

但是,今天我看到我的一个项目,我前段时间进行了升级,正在使用以下命令:

<buildCommand>
    <name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
    <arguments>
    </arguments>
</buildCommand>

它是最近在 STS4 中引入的吗?还是应该删除 STS3 中的某些内容?上面的升级指南没有提到。

【问题讨论】:

标签: eclipse spring-tool-suite spring-tools-4


【解决方案1】:

还是 STS3 的东西

简答:它属于 STS 4,从 STS 3 迁移到 STS 4 时不应删除。

更长的答案

该特定构建器运行特定于 STS 4 并在 Eclipse 构建器内部运行的“验证检查”。

但是,该构建器中当前只定义了一个验证规则。此规则检查@ConfigurationProperties 注解的使用情况,并建议将相应的注解处理器添加到类路径中(如果尚未存在)。

除了禁用单个验证检查外,禁用或删除构建器不会产生其他不良影响。所以如果你不使用 Spring Boot @ConfigurationProperties 那么它根本不会影响你。即使您确实使用它(现在或将来),影响也是微乎其微的。基本上,您必须记住自己手动添加注释处理器依赖项,但不会在编辑器中以警告的形式得到提醒。

展望未来,这个构建器可能会在未来被逐步淘汰和移除。较新的验证,例如最近实现的“SpEL”表达式验证,现在是在语言服务器中而不是在 Eclipse 构建器中定义的。如果我们可以在语言服务器中重新实现@ConfigurationProperties 检查,那么完全摆脱 Eclipse 验证构建器将是有意义的,因为它不再有任何用途。

所以要完全清楚,是的,它是 STS 4 的一部分,并且仍然在做一些有用的事情(在 Eclipse 中),但它早于采用语言服务器作为以非 Eclipse 的方式实现诸如验证之类的方式 -具体的。

【讨论】:

  • 谢谢克里斯!因为我知道 STS4 使用的是语言服务器方法,所以我不确定它是否是 STS4 的东西而不是 STS3 的东西,但你清除了它。最后一个问题:在某些情况下,STS4 会自动添加/删除它吗?我注意到并不是我所有的 STS4 Spring 项目都在他们的 .project 文件中包含它,而且我从未手动添加/删除它。
  • 它会自动添加,但它会在项目属性中记住这已经完成。因此,如果您在此之后将其删除,则不应再自动将其添加回来。 (除非您删除/编辑.settings 下的org.springframework.ide.eclipse.prefs 文件。这是保留布尔标志以记住是否已将构建器添加到项目的位置。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
相关资源
最近更新 更多