第一次写文章,记录我的sonar之旅
之前在本机用的sonar,win10系统,一次安装成功,后来想好东西得分享,就想着把这套sonar放到公司服务器上,谁成想各种问题出来了。为了让大家少遇坑,特意记录一下。
特别注意
sonar版本不同,对jdk版本以及数据库的支持不同。
1、最新版的sonar必须要jdk11才能运行
2、如果您的公司用的是mysql的数据库,那么数据库的版本过高也不行,我们公司就是因为mysql版本过高sonar在启动的时候报jdbc错误。因为一些原因没办法换版本,我又加了postgres。
3、中国的程序员用jdk11的不太多,大部分都还是jdk8,所以sonar6.6-7.6是最好的选择,我用过6.6以及6.7,基本一样。jdk支持1.8 postgres各种版本基本都支持。mysql支持5.7 太多不行。
4、io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline H e a d C o n t e x t . c h a n n e l R e a d ( D e f a u l t C h a n n e l P i p e l i n e . j a v a : 1334 ) a t i o . n e t t y . c h a n n e l . A b s t r a c t C h a n n e l H a n d l e r C o n t e x t . i n v o k e C h a n n e l R e a d ( A b s t r a c t C h a n n e l H a n d l e r C o n t e x t . j a v a : 362 ) a t i o . n e t t y . c h a n n e l . A b s t r a c t C h a n n e l H a n d l e r C o n t e x t . i n v o k e C h a n n e l R e a d ( A b s t r a c t C h a n n e l H a n d l e r C o n t e x t . j a v a : 348 ) a t i o . n e t t y . c h a n n e l . D e f a u l t C h a n n e l P i p e l i n e . f i r e C h a n n e l R e a d ( D e f a u l t C h a n n e l P i p e l i n e . j a v a : 926 ) a t i o . n e t t y . c h a n n e l . n i o . A b s t r a c t N i o B y t e C h a n n e l HeadContext.channelRead(DefaultChannelPipeline.java:1334) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) at io.netty.channel.nio.AbstractNioByteChannel HeadContext.channelRead(DefaultChannelPipeline.java:1334)