Jenkins搭建
可以直接在jenkins上:/
下载jenkins的文件jenkins.war文件
有两种启动方法。
首先保证系统中已经安装了jdk,最好是jdk1.5以上。
第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
然后在浏览器中(推荐用火狐)输入localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins
第二种方法是用tomcat打开
解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat
/usr/local/apache-tomcat-6.0.18/bin$ ./startup.sh start
将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkins目录,所以在地址栏上需要输入的地址于上一种方法有点不一样:
localhost:8080/jenkins
在打开jenkins后,没有创建用户前,先不要勾选系统设置中启用安全选项,如果勾选了,就会出现无法进入jenkins的现象。
如果已经勾选可以通过如下方法来解决:
在jenkins默认的主目录.jenkins中修改l文件,将文件下的几行
<useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>false</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
全部删除,然后重新启动tomcat,重新进入jenkins就不用输入密码了。
jenkins默认的根目录在当前文件夹下,比如本机使用的用户名是kes,打开jenkins后,默认的根目录就是/home/kes/.jenkins目录。.jenkins目录是隐藏的,为了方便需要将jenkins的目录更换以下。先备份当前jenkins的根目录,以便更换主目录失败以后可以恢复到以前的目录。
进入tomcat下的conf目录,创建一个l文件,将如下几行加入,其中jenkins.war文件就是我们放到webapps目录下的jenkins文件,要给出这个文件存放的绝对路径,value后面就是变更后jenkins的根目录的位置。
<Context docBase="/path/to/jenkins.war">
  <Environment name="JENKINS_HOME" type="java.lang.String"
              value="/path/to/jenkins" override="true"/>
</Context>
修改conf下的xml文件的时候,需要将tomcat关掉,修改好后,多次重启tomcat和jenkins,再进入jenkins之后,在系统设置中就可以看到jenkins根目录改变了,而且在环境变量里面增加了JENKINS_HOME这个变量。
在tomcat下webapps的jenkins目录
/usr/local/apache-tomcat-6.0.18/webapps/jenkins/WEB-INF
修改以上目录中的l文件,修改<env-entry-value></env-entry-value>这一行,在
<env-entry-value>之后添加现在的jenkins的根目录。
<env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>/usr/local/jenkins</env-entry-value>
  </env-entry>
重启tomcat,打开jenkins,jenkins根目录修改完毕。
配置sonar
下载sonar包,放在某一目录,解压,比如放在/usr/local目录
运行sonar
进入sonar运行脚本放置的目录:cd /usr/local/sonar-2.0.1/bin/linux-x86-32
其中到sonar.sh就是sonar的运行脚本
./sonar.sh start就可以运行sonar
可以使用./sonar.sh status查看sonar是否有在运行
在浏览器中输入localhost:9000就可以打开sonar界面,默认端口是9000.
配置解压的sonar目录中的conf下的sonar.properties文件,可能需要修改的部分如下:
#----- Embedded database
# Comment the following lines to deactivate the default embedded database (used only for tests and demos)
sonar.jdbc.url:                            jdbc:derby://localhost:1527/sonar;create=true
sonar.jdbc.driverClassName:    org.apache.derby.jdbc.ClientDriver
sonar.jdbc.validationQuery:        values(1)
mysql下载是安装包
# data directory, autodetected : /data if standalone application, /WEB-INF/classes/data if WAR deployement (exploded mode)
#beddedDatabase.dataDir:
# derby embedded database server listening port, defaults to 1527
#sonar.derby.drda.portNumber:              1527
以上是使用sonar内置的数据库derby,不用修改配置,下面这个是mysql数据库的配置文件,如果有安装mysql的话,要将上面三行全部注释掉,在每行前面加上#号。
sonar.jdbc.url:                            jdbc:derby://localhost:1527/sonar;create=true
sonar.jdbc.driverClassName:    org.apache.derby.jdbc.ClientDriver
sonar.jdbc.validationQuery:        values(1)
然后将mysql数据库的配置选项,如下三行,前的#号去掉,取消注释就好了。
#----- MySQL 5.x/6.x
# Comment the embedded database and uncomment the following lines to use MySQL
#sonar.jdbc.url:                            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#sonar.jdbc.driverClassName:      sql.jdbc.Driver
#sonar.jdbc.validationQuery:        select 1
maven项目创建
下载mvn的安装文件,解压到某个目录,进入/path/to/apache-maven-2.2.1/bin目录,然后执行
./mvn archetype:create -l.test -DartifactId=testm
会在当前/bin目录下建立一个名称为testm的目录,在testm下会有一个l文件,这个一般就是每个项目必须的文件。
先在本机器上安装cccc
然后在jenkins上安装cccc插件,建立好一个项目,在Post-build Action中选择Publish CCCC report,在Main XML CCCC report file path 中填入用cccc工具解析后生成的xml文件,cccc检查完后生成的文件名默认是l,可以在cccc工具中手动指定文件名。
示例如下:
/usr/local/jenkins/jobs/test-cccc/workspace/l
在Build中填入shell命令,可以先作代码检查,也可以先编译再做检查,命令行中需要添加cccc检查的命令,范例如下:
cccc --outdir=/usr/local/jenkins/jobs/test-cccc/workspace/cccc-result ./src/*.* ./src/engine/*.* ./*.*
/usr/local/jenkins/jobs/test-cccc/workspace/cccc-result是将来cccc输出结果保存的地方,后面./src是要检查的源码的目录,要注意路径,这里没有写绝对路径,因为在上面的命令中已经切换到了源码存放的目录,检查源码目录中的.c,.h,.cpp,.cc等C语言文件。后面两个也指的是存放有C源码的目录,以及里面存放的C文件。