Sonar抱怨Spring Boot配置



我有这个类来启动spring-cloud配置服务器。它是一个spring-boot应用程序。

@SpringBootApplication
@EnableConfigServer
@EnableDiscoveryClient
public class ConfigServerApplication {
    public static void main( String[] args ) {
        SpringApplication.run( ConfigServerApplication.class, args );
    }
}

应用程序运行良好,我所有的单元测试都很好。然而,在我们的竹管道中,它将初始化一个声纳过程来分析代码。我们不断得到这些小警告,指示如下:

Utility classes should not have a public constructor

我知道这是一个小问题,但我的任务是从我们的代码中删除这些。

理想情况下,您应该将类标记为final并提供一个私有构造函数,或者所有搜索都提供一个解决方案。但是,Spring Configuration类不能设为final,也不能有私有构造函数。

有什么办法解决这个问题吗?

恐怕这不是spring-boot或spring-cloud可以解决的问题。你需要在声纳配置中添加例外。

调整你的声纳设置当然是一个更好的方法,但如果你想取悦机器精灵,你可以简单地在你的类中添加一个非静态dummy函数,使其在声纳检查器的眼中"非实用"。

很容易测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class YourApplicationTest {
    @Test
    public void shouldLoadApplicationContext() {
    }
    @Test
    public void applicationTest() {
        YourApplication.main(new String[] {});
    }
}

现在声纳说,这是测试!
(荣誉归于:Robert @ https://stackoverflow.com/a/41775613/863403)

最新更新