6. 安全性配置
经过以上配置进行一次构建就会发现,Jenkins可以看到太多内容了,包括pull到的源码,所以非常有必要增加权限控制。进入“系统管理”->“Configure Global Security”中进行如下步骤:
1. 启用安全;
2. Jenkins专有用户数据库,先允许用户注册;
3. 授权策略选择“安全矩阵”,新加一个“admin”的用户,把所有权限都开给admin用户;
4. 在主界面的用户中找到admin,进行配置,设置登陆密码;
5. 先重新登陆测试一下是否admin正常,没有问题就关闭允许用户注册,把匿名用户的所有权限都去掉。
7. 自动化部署
这里我没有让Jenkins每次测试都去部署,一方面是考虑到单元测试基本已经满足需要了,另一方面因为测试太频繁了,一直部署也搞得Stage测试环境要经常重启,反而影响正常的人工测试。所以自己写了个脚本,在必要的时候去运行一下去自动完成整个部署工作。
#!/bin/sh
# 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
8. 一个非常蛋疼的问题
这个和以上问题都无关,只是极其不解的是这个错误在Windows下不出现,在Linux下打成War也不会出现,只有在Linux下直接执行Maven test就会出错。其实问题的根源就是配置书写不够规范,但是错误出现的不一致性实在让人蛋疼。报错如下:
1 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xxx
这个就是Mybatis找不到绑定的类,但是xml是正确打包的,怎么看都是没大问题,并且windows也是对的,最后发现是我在写模糊路径的时候,classpath后面必须要加个*才是标准写法,正确写法如下:
<bean>
<property value="com.gzxitao.demo.*.dao"/>
</bean>
<bean>
<property ref="dataSource"/>
<property value="classpath:configuration.xml"/>
<!-- 这里是要扫描多个目录下的文件,必须声明成“classpath*”,否则在某些情况下会报错 -->
<property value="classpath*:com/gzxitao/demo/*/dao/*.xml" />
</bean>
Ubuntu下搭建sun-jdk和Maven2