sonarQube解决sonar.java.binarie必填参数的问题
新版的sonarQube在扫描java代码的时候,要求sonar-project.properties里sonar.java.binaries字段必须填写。这个sonar.java.binaries是“指向包含与源文件对应的已编译字节码文件的目录”,一般来说,maven框架的话,是target/classes。
但是!问题来了,有的时候,我们的代码静态扫描是在还没有编译之前就开始的。例如我们从Jenkins的pipeline里定义了git 拉取代码,然后直接执行SonarQube analysis。并不进行编译。这样我们的Jenkins里是会报错的。那我们该如何处理呢?
jenkins实现持续集成、持续部署
想要利用jenkins实现持续集成、持续部署,首先我们先思考需要jenkins帮我们做些什么事情才能达到这个目的。首先开发人员提交了代码jenkins应该知道这个变动;其次jenkins知道代码变更后,想要拉取代码,此时要求jenkins服务器上也要有代码拉取的终端,比如git、gitee等;再其次拉取完代码后jenkins就需要打包这些代码成为jar包或者war包,这就需要maven、gradle等打包工具;再然后jenkins需要将这些jar包部署到目标服务器,那就需要相应的插件和脚本来部署这些jar或者war包。
docker安装后导致的网络问题
在uat环境中某台机子上安装了docker后,发现公司的办公网络到这条uat的机子就ping不通了,测试环境的网络也ping不通uat了。
使用开源软件Jenkins一键发布项目到服务器
搭建步骤其实很简单,先去官网(https://jenkins.io/)下载一个war包。然后上传linux服务器,或者直接用wget命令下载。下载好后可以直接用java -jar jenkins.war 运行。如果安装了tomcat等web服务器的话就放入对应的路径运行服务器即可。tomcat在webapps下。不推荐使用tomcat,因为war包里本身就包括了一个内置的服务器。如果想后台运行可以用nohup命令。nohup java -jar jenkins.war & ,指定端口加上 --httpPort=xxxx 。