6

Bahar bulut yapılandırma sunucusunu başlatmak için bu sınıfa sahibim. Bir bahar önyükleme uygulamasıdır.Sonar, Spring Boot yapılandırması hakkında şikayet ediyor

@SpringBootApplication 
@EnableConfigServer 
@EnableDiscoveryClient 
public class ConfigServerApplication { 

    public static void main(String[] args) { 

     SpringApplication.run(ConfigServerApplication.class, args); 

    } 

} 

Uygulama iyi çalışıyor ve tüm birim testleri iyi durumda. Ancak, bizim bambu boru hattımızda, kodu analiz etmek için bir sonar süreci başlayacaktır.

Utility classes should not have a public constructor 

Ben bu küçük bir sorun olduğunu biliyorum ama bizim kodundan bu çıkarmadan ile görevli: Aşağıdaki belirten bu küçük uyarılar alıyorum.

İdeal olarak, sınıf finalini işaretler ve özel bir kurucu sağlarsınız, ya da tüm aramalar bir çözüm olarak sunulur. Ancak, bir Spring Configuration sınıfı nihai olarak yapılamaz ve özel bir kurucu olamaz.

Bunu nasıl düzeltebiliriz?

cevap

5

Korkarım ki bu bir ilkbahar-önyükleme sorunu değil ya da bahar bulutu çözebilir. Sonar yapılandırmanıza istisna eklemeniz gerekir.

+0

Teşekkürler @spencergibb Ben de böyle düşünüyordum. Ancak, sonarın bu sınıfın bir genel statik ana yöntem içerdiğini ve bu kuralın bir istisnası olarak kullanıldığını göreceğini düşünürdüm. – dmfrey

+0

P.S. SpringOne2gx'te tanıştığımıza memnun oldum. Görüşmelerinizin tadını çıkarın. – dmfrey

+0

Teşekkürler! Ben de sana çok hoş geldin. – spencergibb

-1

Sonar ayarlarınızı yapmak elbette daha güzel bir yaklaşım olabilir, ancak please the machine spirits'a erişmek istiyorsanız, sınıfınıza statik olmayan bir kukla işlev ekleyebilir ve onu Sonar'ın gözünde "yararsız" hale getirebilirsiniz. denetleyicisi.

+0

benim bir coworking aynı şeyi tavsiye etti. – dmfrey

+0

Bu gerçekten hacklemek, kural geliştirmek ve sonarqube örneğinizde yanlış pozitif olarak işaretlemek için lütfen sorunu bildirin. – benzonico

+0

@benzonico Bunu uygulayamayacaktım, ama sadece birkaç kez ortaya çıkması komikti. – dmfrey

0

Bu testte kolay:

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class YourApplicationTest { 

    @Test 
    public void shouldLoadApplicationContext() { 
    } 

    @Test 
    public void applicationTest() { 
     YourApplication.main(new String[] {}); 
    } 

} 

Şimdi Sonar söylüyor, bu test edilir!
(Kudos şu numaraya karşılık gelir: Robert @https://stackoverflow.com/a/41775613/863403)