重温战场 发表于 2018-1-6 21:56:11

转载:持续集成Jenkins+sonarqube部署教程

1    引言

1.1    文档概要
  本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建。用一个例子介绍jenkins的编译打包部署,代码检查。最后集成jenkins。(现阶段只是简易的集成,后续需要修改accio源码做深度集成)

1.2    预计读者
  系统配置管理员:要懂得搭建持续集成环境,有问题可以排查;
  架构师:了解持续集成实现原理,协助项目接入持续集成。项目在持续集成环境运行中,进行维护、分析构建异常等;
  维护人员:重启服务、排查环境问题、项目接入支持;

1.3    关于持续集成
  提供一套可以持续集成项目流程。能够给接入的项目提供每日构建、自动化测试的支持,提高项目质量、节省项目成本。

2    预装软件
  软件名称    平台    备注
  jdk1.7.0_17    Win7    操作系统
  apache-ant-1.9.6    Win7    Ant
  apache-tomcat-6.0.13    Win7    Tomcat容器

3    安装列表
  软件名称    平台    备注
  Jenkins    Win7    端口 8080
  sonarqube-5.1.2    Win7    端口 9000
  sonar-runner-2.4    Win7
  nexus-2.7.1-01    Linux    Maven私有服务

4    jenkins安装步骤

4.1    安装Jenkins服务端
  从jenkins官网下载jenkins:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins点击“download jenkins.war”
  下载的为jenkins.zip将其更改为jenkins.war包,有两种运行方式
  1.    运行 java -jar jenkins.war,采用内置jetty服务器。
  2.    将下载的war包文件部署到 servlet 容器,然后启动容器(推荐这种方式)。
  用浏览器打开http://localhost:8080/ jenkins,访问Jenkins主页。
http://hordehome.com/uploads/default/original/1X/c90d627af593874af2f778e686371cf84f97148d.png
  安装成功!

4.2    修改jenkins工作空间
  Jenkins的默认工作间在C:\Users\xxxxxx.jenkins,修改工作空为间D:\jenkins,只需要添加环境变量
  JENKINS_HOME=D:\jenkins
http://hordehome.com/uploads/default/original/1X/3150be25562507fdf074ca338a687b75e67acfd9.png
  重启jenkins;

4.3    基本配置
  配置JAVA_HOME \ANT_HOME\。只有配置了这三项,Jenkins才能支持Ant构建的Jave项目。
  地址:
  JAVA_HOME=D:\Program Files (x86)\Java\jdk1.7.0_17
  ANT_HOME=D:\ant-1.6.5
  用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
  点击“系统管理”页面
http://hordehome.com/uploads/default/original/1X/9c3e3d31efb8eed3843e459d393b120d36140760.png
  1. Utf-8编码
  Your
container doesn't use UTF-8 to decode URLs. If you use non-ASCII
characters as a job name etc, this will cause problems. See Containers
and Tomcat i18n for more details.
  Jenkins建议在tomcat中使用utf-8编码,配置tomcat下conf目录的server.xml文件
  2.系统设置
  在已运行的Jenkins主页中,点击左侧的系统管理—>系统设置进入如下界面:
http://hordehome.com/uploads/default/original/1X/b2beb210477bbaeabfd38a2d816251d46bb3f1db.png
  3.JDK、Ant配置
http://hordehome.com/uploads/default/original/1X/50ae6b468ebf570aeb8337bab3d7ad24bfc7548f.png
http://hordehome.com/uploads/default/original/1X/e7012776d88667c5d497195672c5e43c68606279.png
  4.Jenkins Location配置
http://hordehome.com/uploads/default/original/1X/e5c5ee3fa6f29e06799493b3fdab24d1e1bf2b62.png
  5.邮件通知配置
http://hordehome.com/uploads/default/original/1X/3d5eb49dcb8f6a35418912c88feef8c4f42d7231.png
  注意:如果使用qq邮箱需要开通SMTP服务,打开邮箱点击“设置”》“账户”
http://hordehome.com/uploads/default/original/1X/d503d5d7ed732cbd2625cea6a0c1bc55fc19840b.png
http://hordehome.com/uploads/default/original/1X/1d8a2ce75e9766d90bc3a6dac772641cc7816d11.png

4.4    邮件插件安装
  Jenkins默认的邮件发送功能非常弱,多人发送、按情况发送、邮件模板都支持不好,因此需要按照增强版的邮件插件。
  用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
  点击“系统管理”-》“管理插件”
http://hordehome.com/uploads/default/original/1X/665bce96da2905b1eddfca2739cee0b365ddf0c0.png
  选择“可选插件”卡片,显示出所有可以下载安装的插件。选择“Email Extension Plugin”插件,点击 http://hordehome.com/uploads/default/original/1X/ec9f250f0007a033dcb2c91c7c0def50f0b34f43.png按钮。
http://hordehome.com/uploads/default/original/1X/28b5e541062901e8e317e08554d4b7776eb77757.png
  等待插件安装完成后,登录到服务器上,重启Jenkins服务!
  服务重启后,用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
  点击“系统管理”-》“系统设置”
  看到“Extended E-mail Notification”主题配置单元,就证明配置成功。
http://hordehome.com/uploads/default/original/1X/8a317a9210ecfc6ba01b08d332ee7422ce549625.png
http://hordehome.com/uploads/default/original/1X/54f565513de411d3f321e56bd27d29b4b60f6241.png
  
email-ext插件允许使用变量来动态插入数据到邮件的主题和内容主体中。变量是一个以$(美元符号)开始,并以空格结束的字符串。当一个邮件触发
时,主题和内容主体字段的所有变量都会通过真实的值动态地替换。同样,变量中的“值”能包含其它的变量,都将被替换成真实的内容。
  邮件的内容如下:
  项目名称:$PROJECT_NAME
  构建编号:$BUILD_NUMBER
  svn版本号:${SVN_REVISION}
  构建状态:$BUILD_STATUS
  触发原因:${CAUSE}
  构建日志地址:${BUILD_URL}console
  构建地址:$BUILD_URL
  变更集:${JELLY_SCRIPT,template="html"}
http://hordehome.com/uploads/default/original/1X/01d089f9f5df468d16c5d5021965d64653745dfb.png
  全局属性详解
  1. Override Global Settings:如果不选,该插件将使用默认的E-mail Notification通知选项。反之,您可以通过指定不同于( 默认选项)的设置来进行覆盖。
  2. Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种.
  3.
Use List-ID Email
Header:为所有的邮件设置一个List-ID的邮件信头,这样你就可以在邮件客户端使用过滤。它也能阻止邮件发件人大部分的自动回复(诸如离开办公
室、休假等等)。你可以使用你习惯的任何名称或者ID号,但是他们必须符合如下其中一种格式(真实的ID必须要包含在<和>标记里):
  Build Notifications
  “Build Notifications”
  关于更详细的List-ID说明请参阅RFC-2919.
  4. Add 'Precedence: bulk' Email Header:设置优先级,更详细说明请参阅RFC-3834.
  5.
Default Recipients:自定义默认电子邮件收件人列表。如果没有被项目配置覆盖,该插件会使用这个列表。您可以在项目配置使用$
DEFAULT_RECIPIENTS参数包括此默认列表,以及添加新的地址在项目级别。添加抄送:cc:电子邮件地址例
如,CC:someone@somewhere.com
  6. Reply To List:回复列表, A comma separated
list of e-mail addresses to use in the Reply-To header of the email.
This value will be available as $DEFAULT_REPLYTO in the project
configuration.
  7. Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。
  8. Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔
  9. Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样你就可以在构建中包含指定的输出信息。

  10. Maximum Attachment>  11. Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样你就可以在构建中包含指定的输出信息。
  12. Default Pre-send Script:默认发送前执行的脚本(注:grooy脚本,这是我在某篇文章上看到的,不一定准确)。
  13. Enable Debug Mode:启用插件的调试模式。这将增加额外的日志输出,构建日志以及Jenkins的日志。在调试时是有用的,但不能用于生产。
  14. Enable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。如果用户试图访问Jenkins管理对象实例,将抛出一个安全异常。
  15. Content Token Reference:邮件中可以使用的变量,所有的变量都是可选的。
  邮件:
  详细配置可以参考 https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin

4.5    权限插件安装
  点击“系统管理”-》“管理插件”》“可选插件” 在搜索框输入“Role-”点“直接下载”
http://hordehome.com/uploads/default/original/1X/2173c41cff80e074fb430f118ebf47a415b8aa0c.png
http://hordehome.com/uploads/default/original/1X/0296d89aa22b8894cfbba4afe30f914aa91c608f.png
http://hordehome.com/uploads/default/original/1X/54d173437fd1a7c180f93257c513b93da20f91e9.png
  点击“系统管理”-》“Configure Global Security”
http://hordehome.com/uploads/default/original/1X/805adceb88acf87054751b52d96d55c472fd74d3.png
  点击“系统管理”-》“Manage and Assign Roles”
http://hordehome.com/uploads/default/original/1X/6f2ac511377ee7bd95c50039181537ca95c0044d.png
  点击“Manage Role”,Role to add 新增角色。
http://hordehome.com/uploads/default/original/1X/bc79dc38d7cde38540dd3b4118208a788b645946.png
  点击点击“系统管理”》“管理用户”新增用户
http://hordehome.com/uploads/default/original/1X/c2fe0961a33eb375810ff39b42f5a495bef4bb50.png
  点击“Assign Roles”,User/group to add ,给用户添加相应的权限
http://hordehome.com/uploads/default/original/1X/510066f5228d9ce044b0972020bda8a5433b7407.png
  注意: 如果给anonymous新增admin权限,系统不用登陆也具有admin权限,所以其他的角色权限都是失效状态。

4.6    自动部署插件安装
  点击“系统管理”-》“管理插件”》“可选插件”搜索“Deploy to container Plugin”,“直接下载”
http://hordehome.com/uploads/default/original/1X/a25690b213954703956cb03e67de6db85f645f93.png
  配置tomcat权限,在tomcat的conf目录下修改tomcat-users.xml,添加一下内容。

4.7    构建一个自由风格的项目
  在已运行的Jenkins主页中,点击左侧的新建Job进入如下界面:
http://hordehome.com/uploads/default/original/1X/38050b5eaa8e8954c77b2d6403efabc5f8f37b4e.png
  输入项目名称选择jdk(jdk已经在全局配置中配置)
http://hordehome.com/uploads/default/original/1X/b5d0eb8d34cc7bcdd91f41c6de0879abf9ca2bb5.png
  填写项目的snv地址
http://hordehome.com/uploads/default/original/1X/333f02099a4ba2c3c66b3d5d91c19b8d77d1d44d.png
  配置触发器 ,“H/15 * ***”表示每个15分钟检查svn有没有更新,有更新则重新打包。
http://hordehome.com/uploads/default/original/1X/f4b6308427f4f36e4dc0fd0a2cb16be60b4eed54.png
  选择项目构建工具,本例中使用ant,ant已经在全局配置中配置。
http://hordehome.com/uploads/default/original/1X/34461fb98dff6beab771e4ae48417feec146e824.png
  配置构建完成自动部署,部署需要安装deploy插件,安装方法同邮件插件安装。如果是集群部署则需要点击“Add Container”新增需要部署的容器。
http://hordehome.com/uploads/default/original/1X/ad27de6ca7ce9890a649bf86011f8c786bac0ee9.png
  看到如下日志说明部署成功
http://hordehome.com/uploads/default/original/1X/2c4b3f251f52ff3828ee419da69f3a33c44e8323.png
  配置邮件插件
http://hordehome.com/uploads/default/original/1X/7556d02eb213f92acd46cb1d8bd6efbdbeefb219.png
  点击“保存”。进行项目构建,点击“立即构建”
http://hordehome.com/uploads/default/original/1X/c309055c165e4c8b37aad8a27f8285a31c8afbcf.png
  点击构建日期右边的小三角,
http://hordehome.com/uploads/default/original/1X/1099d81732a780b86235f3e2615361ef9bad0878.png
  点击“Console Output”查看构建日志
http://hordehome.com/uploads/default/original/1X/8e8b7686e6c458ff4d503141621f3fea4a2c05ec.png
  测试项目自动构建打包,打包完成后部署到远程服务器。

5    Sonar安装

5.1    Sonar安装
  下载sonar http://www.sonarqube.org/downloads/,下载后sonar是一个zip包解压即可。1
  下载完后解压客户端,随意放置一个地方
  如 我放置于D:\
  进入进入D:\sonarqube-5.1.2\bin这里需要注意,选择32或者64是对应你配置的JDK)
http://hordehome.com/uploads/default/original/1X/a778ed8ea312bfa7f3a004270ff590d91021b742.png
  创建数据库,默认数据库H2,这里我们修改为mysql
  CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
  创建用户

  CREATE USER 'sonar'>  给用户授权

  GRANT ALL ON sonar.* TO 'sonar'@'%'>
  GRANT ALL ON sonar.* TO 'sonar'@'localhost'>  FLUSH PRIVILEGES;
  修改sonar.properties文件
http://hordehome.com/uploads/default/original/1X/fca07e48ba970f088f9e062560d845ece83441e3.png
  添加如下内容,sonar默认自带mysql驱动。
  sonar.jdbc.username=sonar
  sonar.jdbc.password=sonar
  sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
  sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
  运行“StartSonar.bat”
http://hordehome.com/uploads/default/original/1X/61dbfcf9154da9c7493c8365bc191956352a25dc.png
  访问9000端口,sonar默认自带了jetty服务器。默认用户名密码 admin、admin。一些设置和菜单只有在登陆之后才能看到。
http://hordehome.com/uploads/default/original/1X/40a4b153bd6370da742aeddf8aef89f03ec122c2.png
  安装sonar汉化包,点击“配置”》“系统”》“更新中心”》“Arailable Plugins”选择“Chinese Pack”,由于我已经安装了汉化包所以没有列出。
http://hordehome.com/uploads/default/original/1X/d238bfdf51ea9850571b5be098359e2b15ce9a8e.png
http://hordehome.com/uploads/default/original/1X/d60b3190d9261ec295d0ffc26bd055b20a1a7258.png
  安装完成后在“installed Plugins”可以看到该插件。记得重启后,记得刷新一下浏览器
http://hordehome.com/uploads/default/original/1X/f04a4646973e764036e2d778cf5a65af35e8e3eb.png

5.2    安装sonar-runner
  下载:http://www.sonarqube.org/downloads/
http://hordehome.com/uploads/default/original/1X/5017fb3027db7d55f64da7d707fc42976576e350.png
  下载后解压
http://hordehome.com/uploads/default/original/1X/2bd9bfa92571712500766cb2e00ea26d33b1c834.png
  修改conf目录下的sonar-runner.properties文件,新增如下内容,数据库
http://hordehome.com/uploads/default/original/1X/4cdc3a7cdcd3583fc588ecd3ec4f8e008421439b.png
  sonar.jdbc.username=sonar
  sonar.jdbc.password=sonar
  sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
  sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
  配置环境变量,将D:\sonar-runner-2.4\bin 添加到Path
http://hordehome.com/uploads/default/original/1X/68fb4e5b878dea93c7aab6e4d767e9f5818a900f.png
http://hordehome.com/uploads/default/original/1X/e8d1fef12ee8ddc209d121e6a0ab13492b865e1a.png
  在项目的根目录下添加文件sonar-project.properties
http://hordehome.com/uploads/default/original/1X/110108e472ed76b3f945c33e8d6a2923fbc0e811.png
  文件内容如下
  sonar.projectKey=HotelMonitor
  sonar.projectName=HotelMonitor
  sonar.projectVersion=1.2
  sonar.sources=src
  sonar.sourceEncoding=UTF-8
  sonar.language=java
  在“开始”》“运行”中输入cmd切换的项目更目录 输入“sonar-runner”
http://hordehome.com/uploads/default/original/1X/8dae0020aba97461e2eec250a1aaa226c39b4697.png
  看到如下日志,说明代码校验成功
http://hordehome.com/uploads/default/original/1X/fe6c791e839ce45e7aba48ec9ba7b800a3abaafa.png
  登陆http://localhost:9000/ 查看代码扫描结果
http://hordehome.com/uploads/default/original/1X/1e92674bfae3a0e43873ffcea0c3bea801bb3ec5.png
  点击项目名称查看校验详情
http://hordehome.com/uploads/default/original/1X/7d0714e712cab28ee194f4e2e7a385826fd75d3f.png

6    Jenkins与sonar集成

6.1    Jenkins配置
  点击点击“系统管理”》“系统设置”
  配置sonar-runner有两种方式
  第一种jenkins自动安装sonar-runner
http://hordehome.com/uploads/default/original/1X/355b0990df205c1ec155d2002c9308c5cd258032.png
  第二种 使用现有安装
http://hordehome.com/uploads/default/original/1X/8a5e1acf6d4046ee75db5bd29d633ba83fcfa404.png

6.2    sonar配置
http://hordehome.com/uploads/default/original/1X/826cb6764dfc49c9fe282f38a153972bfc6c26f9.png
  点击“保存”。
  在项目中配置sonar代码分析
  点击项目名称进入项目配置,选择“新增构建步骤”,选择“invoke Standalone Sonar Analysis”
http://hordehome.com/uploads/default/original/1X/1cdad725cecdcafbb508b7e54676529d2a5dcce6.png
  作如下配置
http://hordehome.com/uploads/default/original/1X/0ced31110c79292767ece5298b67d0fd2d55125e.png
  点击“保存”
  将项目根目录下的sonar-runner.properties提交svn,
  执行“立即构建”
  看到jenkins的控制台输出如下日志,校验成功
http://hordehome.com/uploads/default/original/1X/c8ca2d4978dd0cdd757e65aa8a2135d7bad39f68.png
http://hordehome.com/uploads/default/original/1X/daddd10f2b0b468f6621b17c1675142b0a6ad11a.png
  访问http://localhost:9000/dashboard/index/HotelMonitor
  查看校验结果。
  若果本地安装了sonar-runner,可以运行本地bat脚本的方式运行sonar-runner,配置如下,前提是必须将sonar-runner加入的环境变量, 选择“增加构建步骤”
http://hordehome.com/uploads/default/original/1X/9cd8533a5b6724545ff34047094bbbf8b26c99ba.png
  输入bat脚本
http://hordehome.com/uploads/default/original/1X/91665456dd97c5399b2f030f07614cc7e59c03ab.png
  修改sonar配置,做如下配置,打开sonar配置页面,配置“disable the SCM Sensor”为“是”
http://hordehome.com/uploads/default/original/1X/24e2a16d0cbf6a5bbf0c8d82bcf492271c4f482f.png
  否则会报如下错误
http://hordehome.com/uploads/default/original/1X/bbc6829e9f628e41a2b0ce360641e857f7fef92f.png

7    Maven安装与maven私服的搭建

7.1    Maven安装
  在maven官网下载maven
  http://maven.apache.org/download.cgi
  下载apache-maven-3.1.1-bin.zip并解压
http://hordehome.com/uploads/default/original/1X/36d567035e28240467b4fc25a2ead61145fb3e63.png
  配置环境变量
http://hordehome.com/uploads/default/original/1X/6adbcdaaa3738e22197bfcabac962fe18f401faf.png
  打开cmd窗口数据 mvn –v查看maven版本,打印如下表示安装成功。
http://hordehome.com/uploads/default/original/1X/c3aaf4d2d292b053bc3dbe8b161f22f47f5403ec.png

7.2    Maven私服nexus安装
  下载nexus http://www.sonatype.org/nexus/go/,我下载的是linux版本。
  nexus-latest-bundle.tar.gz
  将安装包复制到需要安装的机器,我安装在/opt/soft/nexus
  tar –zxvf nexus-latest-bundle.tar.gz
  解压后会出现两个目录
http://hordehome.com/uploads/default/original/1X/93edb7c187d684ffd46db1797d7e7afda54180d5.png
  cd nexus-2.7.7-01/bin
  ./nexus
  输出如下:
http://hordehome.com/uploads/default/original/1X/37d6e4cabb5a9e4598ddc2d3ad8d630cc098f0ca.png
  列出了nexus的各种命令
  ./nexus start 启动服务
  然后在本机访问http://localhost:8081/nexus,默认用户名密码:admin,admin123
http://hordehome.com/uploads/default/original/1X/ece7f70144c5aa92c1a6827ebc4d411513b93330.png
  如果是远程机访问还需要开通8081端口,操作如下:
  /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT #开启8081端口
  /etc/rc.d/init.d/iptables save #保存配置
  /etc/rc.d/init.d/iptables restart #重启服务
  查看端口是否已经开放
  /etc/init.d/iptables status

7.3    Nexus配置
  hosted   类型的仓库,内部项目的发布仓库
  releases 内部的模块中release模块的发布仓库
  snapshots 发布内部的SNAPSHOT模块的仓库
  3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
  proxy   类型的仓库,从远程中央仓库中寻找数据的仓库
  group   类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
  点击“Repositories”》“central”》“configuration”
http://hordehome.com/uploads/default/original/1X/a5bbb7b1aa1239c3eb1f9a5313a1dc7d99f1f5ca.png
  设置“Download Remote Indexes”为true
  设置“Remote Storage Location”为:http://repo1.maven.org/maven2/
http://hordehome.com/uploads/default/original/1X/b348400479b25731f6afbf82fb1e65376226e547.png
  配置完成保存之后,在“central”中右键“repair index”,下载索引
http://hordehome.com/uploads/default/original/1X/75ea00e04b3e29bd4d70a504baf8e7c0b1ede984.png
  在“browse Index”查看下载的索引
http://hordehome.com/uploads/default/original/1X/93004c094097411d9f116ddd5ce9f44c4ba29636.png
  注意:如果没有下载到索引可能是因为nexus安装的目录下sonatype-work目录没有修改权限,给文件夹赋权即可;
  Chmod 777 –R sonatype-work
  修改maven安装目录conf下的settings.xml文件添加如下代码
  1.在profiles节点下添加
  nexus
  nexus
  http://10.10.152.174:8081/nexus/content/groups/public/
  true
  true
  在settings节点下添加
  central
  

</activeProfiles>  

  在services节点下添加

  >  admin
  admin123
  snapshots
  admin
  admin123
  在项目的pom文件中添加
  

<distributionManagement>  
<repository>
  
<id>releases</id>

  
<name>Nexus>  
<url>http://10.10.152.174:8081/nexus/content/repositories/releases/</url>
  
</repository>
  
<snapshotRepository>
  
<id>snapshots</id>
  
<name>Nexus Snapshot Repository</name>
  
<url>http://10.10.152.174:8081/nexus/content/repositories/snapshots/</url>
  
</snapshotRepository>
  
</distributionManagement>
  

  然后执行clean deploy
http://hordehome.com/uploads/default/original/1X/eab3077954b7e27074b95abcb9879ab7b8423cd5.png
  或者在eclipse中输入命令执行
http://hordehome.com/uploads/default/original/1X/df819f0e680ce62a87ae359e474a6c66a3b38b7f.png
  查看私服部署的jar包
http://hordehome.com/uploads/default/original/1X/6077422d0c9e1089e5f289aaeb78ae33d8b23491.png

7.4    Nexus上传jar包
  右键“3rd party”
http://hordehome.com/uploads/default/original/1X/16dfc6ae0766b80e12fede52456cf526ab9144f5.png
  在索引中查看上传的jar包
http://hordehome.com/uploads/default/original/1X/ba4b3e2d7466e8009dac33b621a8789084f0b0fe.png
  如果要引用该jar包只需要将描述中的xml添加到项目引用的opm文件中
http://hordehome.com/uploads/default/original/1X/f26118080c93b0dc50a09af5c15176e3693fb6ca.png

7.5    Maven相关命令
  help:system可以打印所有可用的环境变量和Java系统属性。
  help:effective-pom用于查看当前生效的POM内容,指合并了所有父POM(包括Super POM)后的XML,所以可用于检测POM中某个配置是否生效
  help:effective-settings可用于查看当前生效的settings.xml文件内容,所以可用于判断某个settings配置是否生效
  mvn
help:describe
你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的. 参数:
1. -Dplugin=pluginName 2.
-Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加
-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 下面大家就运行mvn help:describe
-Dplugin=help -Dmojo=describe感受一下吧!
  mvn archetype:generate
你是怎么创建你的maven项目的?是不是像这样:mvn archetype:create
-DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote
-Dartifact=common,如果你还再用的话,那你就out了,现代人都用mvn
archetype:generate了,它将创建项目这件枯燥的事更加人性化,你再也不需要记那么多的archetypeArtifactId,你只需
输入archetype:generate,剩下的就是做”选择题”了.
  mvn tomcat:run
用了maven后,你再也不需要用eclipse里的tomcat来运行web项目(实际工作中经常会发现用它会出现不同步更新的情况),只需在对应目录
(如/ryanote)里运行 mvn
tomat:run命令,然后就可在浏览器里运行http://localhost:8080/ryanote查看了.如果你想要更多的定制,可以在
pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06
07 /web 08 9090 09 10 11 12 当然你也可以在命令里加参数来实现特定的功能,下面几个比较常用: 1.
跳过测试:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3.
忽略测试失败:-Dmaven.test.failure.ignore=true
当然,如果你的其它关联项目有过更新的话,一定要在项目根目录下运行mvn clean install来执行更新,再运行mvn
tomcat:run使改动生效.
  mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里同样适用.
  mvn dependency:sources 故名思义,有了它,你就不用到处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了

8    Jenkins,maven,sonar集成

8.1    集成
  默认jenkins已经安装了maven插件
http://hordehome.com/uploads/default/original/1X/442a5b22af17bb45c7832c9de6d0b44a2091e299.png
  在jenkins“系统管理”》“系统设置”中添加jenkins配置,也可以使用“自动安装”
http://hordehome.com/uploads/default/original/1X/4e49937e7ce059f62afbcbf391bf437e7c01075e.png
  新建一个maven项目,在“项目配置”中输入svn地址
http://hordehome.com/uploads/default/original/1X/6f8d99f60853dcae85a634bbc5f76ec540316663.png
  添加sonar代码分析,在“增加构建后操作步骤”选择“sonar”
http://hordehome.com/uploads/default/original/1X/3c06a9c128b6e44508a48d79c1ae8f7e9ae06ecf.png
  点击“保存”后进行项目构建,可以看到jenkins从私服上下载相关依赖jar包
http://hordehome.com/uploads/default/original/1X/13b4032050af15dc460e757832e8699d2c5ddd50.png
  访问http://localhost:9000/ 查看sonar生成的代码监测报告
http://hordehome.com/uploads/default/original/1X/f26fc5f1ad42b9c88af5413a79fcc7fa191f51ce.png
页: [1]
查看完整版本: 转载:持续集成Jenkins+sonarqube部署教程