??xml version="1.0" encoding="utf-8" standalone="yes"?> 1. 开发环?br /> 我这边徏立的标准开发环境如下: 7. log4j作ؓ日志输出?br /> 注:其实q套东西非常像GrailsQ但不敢用太Ȁq的技术和框架Q担心招人的问题-_-! 2. Jenkins的部|?br /> Jenkins原名是HudsonQ这个渊源这里就不追溯了Q网上多得是Q但是千万别下错了,官网地址?a style="color: #b32bd5;">http://jenkins-ci.org/。徏议直接下载最新版本?/p> q个软g的安装是我见q最单的了,直接取war包放到tomcat下,启动tomcat卛_。相应的工程配置会在~/.jenkins目录中。(当然你根据官|给的那U安装方法也行,只是在debian的那个弄法还要去下蝲openjdk{等Q多下了很多东西Q相关配|也按linux目录标准分开的,q要L。) 另外提醒一下,把Jenkins安装在Linux上,q样׃会出现ssh{命令找不到的问题,否则q要惛_法去处理?/p> 3. Jenkins的插?br /> 安装好后直接讉K“http://yourhost:8080/jenkins”卛_q入ȝ面,点击“pȝ理”->“理插g”Q首ơ进入都是空白的Q要{?分钟左右才能看到内容Q在后台估计是在做更新或者下载,然后重新再进此界面就能看到内容了?/p> 3.1 Git插g 3.2 Email插g 3.3 其他插g 2. Jenkins URLQ自动生成的Q检查一下即? 5. 目讄 1. 源码理Q选择GitQ填?#8220;Repository URL”Qƈ加上相应?#8220;Credentials”Q其中认证信息用U钥的话q脆直接把私钥内容填上去p了,省的不知道目录查找规则还不知道出的啥问题?/p> 2. 构徏触发器:q个地方要把“Build periodically”?#8220;Poll SCM”都选上Q时间格式都填写成一L卛_Q比?#8220;H/15 * * * *”Q下面会有个具体执行旉的提C,Build动作会自动比Poll延迟3?0U,q个讑֮q是很合理的?/p> 3. 构徏Q增加两个构建步骤,分别?#8220;Execute shell”?#8220;Invoke top-level Maven target”Q注意先后顺序,可以拖拽摆放的。脚本执行根据自己需要,比如我需要去修改数据库连接配|,官方是自己在工程里面写好脚本Q这里直接调用,而不是在q写一个完整的脚本。Maven构徏加?#8220;clean test”卛_Q就是运?#8220;mvn clean test”的命令?/p> 4. Publish Junit test result reportQ在试报告QXMLQ上加上“**/target/surefire-reports/*.xml”卛_Q这样就会每ơ测试完自动扑ֈ试报告Q在Jenkins上即可在每个构徏l构里面查看到?/p> 5. 邮g通知Q在构徏后增?#8220;Editable Email Notification”Q填写邮件的接受者、内Ҏ式可以直接用全局变量Q重Ҏ配置一下发送触发条件?/p> 6. 安全性配|?br /> l过以上配置q行一ơ构建就会发玎ͼJenkins可以看到太多内容了,包括pull到的源码Q所以非常有必要增加权限控制。进?#8220;pȝ理”->“Configure Global Security”中进行如下步骤: 2. Jenkins专有用户数据库,先允许用h册; 7. 自动化部|?br /> q里我没有让Jenkins每次试都去部vQ一斚w是考虑到单元测试基本已l满需要了Q另一斚w因ؓ试太频J了Q一直部|也搞得Stage试环境要经帔R启,反而媄响正常的人工试。所以自己写了个脚本Q在必要的时候去q行一下去自动完成整个部v工作?br />#!/bin/sh 8. 一个非常蛋疼的问题 q个是Mybatis找不到绑定的c,但是xml是正打包的Q怎么看都是没大问题,q且windows也是对的Q最后发现是我在写模p\径的时候,classpath后面必须要加?才是标准写法Q正写法如下: <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> Maven权威指南_中文完整版清晰PDF http://www.linuxidc.com/Linux/2014-06/103690.htm Maven 3.1.0 发布Q项目构建工?nbsp;http://www.linuxidc.com/Linux/2013-07/87403.htm Linux 安装 Maven http://www.linuxidc.com/Linux/2013-05/84489.htm Maven3.0 配置和简单?nbsp;http://www.linuxidc.com/Linux/2013-04/82939.htm Ubuntu下搭建sun-jdk和Maven2 http://www.linuxidc.com/Linux/2012-12/76531.htm Maven使用入门 http://www.linuxidc.com/Linux/2012-11/74354.htm Jenkins的分布式构徏及部|?#8212;—节点 http://www.linuxidc.com/Linux/2015-05/116903.htm Jenkins 的详l介l?/strong>Q?a title="Jenkins" style="color: #b32bd5;">Lq里 本文怹更新链接地址Q?a style="color: #b32bd5;">http://www.linuxidc.com/Linux/2015-06/118606.htm
持箋集成q个概念已经成ؓ软g开发的LQ可以更频繁的进行测试,早发现问题q提C。自动化部v更不用说了Q可以加快部|速度Qƈ可以有效减少Zؓ操作的失误。之前一直没有把q个做v来,最q的新项目正好有ZQ费了一番功夫ȝ搞好了,Ҏ记录?/p>
1. Maven做项目管理;
2. Git做代码管理;
3. SpringMVC+Spring+Mybatis搭徏的程序框Ӟ
4. Mysql作ؓ数据存储QDruid做连接池Q?br /> 5. unitils作ؓ试框架Q?br /> 6. Hibernate Validator作ؓ数据验证Q?/p>
?#8220;可选插?#8221;中找?#8220;GIT plugin”安装Q最下面有个安装完重启的N项Q选中卛_。这里最搞笑的是网l是否连通的办法是去试打开googleQ岂不知天朝是打不开的,q好不媄响下载。。?/p>
q个事情非常蛋疼Q之前测试怎么都发布出来邮Ӟ最后升U了一下默认插件就行了Q狂汗。在“可更?#8221;中找?#8220;Mailer Plugin”选中q更新即可。另外如果想有更丰富的邮件内容,去“可选插?#8221;中安?#8220;Email Extension Plugin”Q具体邮件内定w|网上大把可以搜?/p>
默认p了很多常用插Ӟ比如Maven、Junit{等Q如果用感觉有问题可以试升一下版本,但是没有升说明Q也不知道升U了什么东ѝ?/p>
4. pȝ讄
ȝ面点?#8220;pȝ理”->“pȝ讄”卛_q入。重炚w|以下内容:
1. Java、Git、Maven的目录位|,保可以正确扑ֈ命oQ?/p>
3. 邮g的设|。这里注意一下,上面有一?#8220;pȝ理员邮件地址”需要填写,另外“Extended E-mail Notification”中填写配|,原来?#8220;邮g配置”׃用再理会了?/p>
在主界面直接“新徏”Q就会有一个新的项目。重炚w|以下内容:
1. 启用安全Q?/p>
3. 授权{略选择“安全矩阵”Q新加一?#8220;admin”的用P把所有权限都开ladmin用户Q?br /> 4. 在主界面的用户中扑ֈadminQ进行配|,讄登陆密码Q?br /> 5. 先重新登陆测试一下是否admin正常Q没有问题就关闭允许用户注册Q把匿名用户的所有权限都L?/p>
# update code
git pull
# package
mvn clean
mvn package -Dmaven.test.skip=true
# deploy
WAR=`ls target | grep war`
TOMCAT=/home/test/apache-tomcat-6.0.41
mv target/$WAR $TOMCAT
cd $TOMCAT
# invoke another deploy script
sh deploy-war.sh $WAR webapps
q个和以上问题都无关Q只是极其不解的是这个错误在Windows下不出现Q在Linux下打成War也不会出玎ͼ只有在Linux下直接执行Maven test׃出错。其实问题的Ҏ是配置书写不够规范Q但是错误出现的不一致性实在让疹{报错如下:
1 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xxx
<property name="basePackage" value="com.gzxitao.demo.*.dao"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:configuration.xml"/>
<!-- q里是要扫描多个目录下的文gQ必d明成“classpath*”Q否则在某些情况下会报错 -->
<property name="mapperLocations" value="classpath*:com/gzxitao/demo/*/dao/*.xml" />
</bean>
Jenkins 的下载地址Q?a target="_blank" style="color: #b32bd5;">Lq里
一、安?span style="font-family: Tahoma;">Jenkins
二、配|?span style="font-family: Tahoma;">Jenkins
三、自动编?/span>
四、自动测?/span>
五、自动部|?/span>
一、安?span style="font-family: Arial;">Jenkins
地址http://mirrors.jenkins-ci.org/下蝲适合?span style="font-family: Tahoma;">Jenkins版本?/span>
Windows最新稳定版?span style="font-family: Tahoma;">Jenkins地址为:http://mirrors.jenkins-ci.org/windows-stable/jenkins-1.409.1.zip
?span style="font-family: Tahoma;">Jenkins 1.409.1版解压,把得到的war包直接扔?span style="font-family: Tahoma;">tomcat下,启动tomcatQ?span style="font-family: Tahoma;">Jenkins安装完毕,是不是很单啊?/span>
1、打开http://10.3.15.78:8080/jenkins/Q第一ơ进入里面没有数据,我们需要创?span style="font-family: Tahoma;">jobQ我们这?span style="font-family: Tahoma;">2个项目,需要创?span style="font-family: Tahoma;">2?span style="font-family: Tahoma;">job?u>http://10.3.34.163:9890/jenkins/
2、点d上角?span style="font-family: Tahoma;">new jobQ在new job面需要选择job的类型,Jenkins支持几种cdQ我们选择“构徏一?span style="font-family: Tahoma;">maven2/3目”
3、点?span style="font-family: Tahoma;">OK按钮后,q会q入详细配置界面Q详l配|界面的配置很多,不过不用怕,大部分用默认配|就可以了,下面p说我们需要修改的几个地方Q?/p>
3.1Q?span style="font-family: Tahoma;">Source Code Management
因ؓ我们使用SVN理源码Q所以这里选择SubversionQƈ?span style="font-family: Tahoma;">Repository URL中输入我们的SVN地址Q?/span>
http://10.3.34.163:9880/XXXX/trunk/
输入SVN库的URL地址后,Jenkins会自动验证地址Qƈl予提示?/span>
点击U色字体部分?span style="font-family: Tahoma;">enter credential链接Q进入页?/span>
讄好访?span style="font-family: Tahoma;">SVN库的用户名和密码后,点击OK按钮
讄成功。点?span style="font-family: Tahoma;">Close按钮Q返回之前的Source Code Management面。此时不再有U色警告信息了?/span>
3.2Q配|自动构建的计划Q假设我们想让项目中每天12点和晚上8点自动构Zơ,只需要在Build Triggers中选择Build periodicallyQƈ?/span>Schedule中输?/span> 0 12,20 * * *?/span>
我配|的是每?/span>8点自动构?/span>
注:Schedule的配|规则是?/span>5个空格隔开的字W组成,从左到右分别代表Q分?/span>?/span>?/span>q?/span>*代表所有,0 12,20 * * * 表示“在Q何年M月Q何天?/span>12?/span>20?/span>0?#8221;q行构徏?/span>
3.3Q配|到q里Q可能有人发现在Build配置节点Q有U色错误信息Q提C?/span>
Jenkins needs to know where your Maven2 is installed.
Please do so from the system configuration.
是因?/span>Jenkins找不?/span>maven的原因,点击"system configuration"Q是system configuration?/span>maven配置中添?/span>maven目录?/span>OK?/span>
我设|了JRE 6?span style="font-family: Tahoma;">MAVEN 3的安装目录?/span>
点击左下角的SAVE按钮Q保存设|?/span>
3.4Q保存好所有配|后Q我们第1?/span>jobq是完成了?/span>
3.5Q创建第2?/span>jobQ配|和上面的配|相同。只需?/span>svn地址ҎQ?span style="color: #003399;">http://localhost/svn/Web
在经q上面的配置后,回到Jenkins首页Q在首页可以看到刚才d?/span>2?/span>job
点击?/span>1?/span>job后后面的"Schedule a build"囄手动构徏Q点d后,会在左边?/span>Build Queue或?/span>Build Executor Status昄正在构徏的Q务,在自动构建完后,h面Q就可以看到构徏l果了,如何某个目构徏p|Q点击项目后面的构徏数字(?/span>1开始递增)q入目?/span>"Console Output "可以查看目构徏p|的原因。当然我们也可以配置把构建失败的l果发到邮箱?/span>
到目前ؓ止,1个简单的自动构徏环境搭建好了,很简单吧?/span>