0

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

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

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

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

4

1 回答 1

1

或者它仍然是 STS3 的东西

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

更长的答案

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

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

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

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

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

于 2020-10-15T16:26:26.170 回答