设为首页 收藏本站
查看: 983|回复: 0

[经验分享] 探索构架开发J2EE项目的自动化体系

[复制链接]

尚未签到

发表于 2017-3-2 09:55:20 | 显示全部楼层 |阅读模式
  序目



  • Eclipse IDE开发环境

  • Maven构建自动化编译打包项目

  • Nexus  私有Maven仓库

  • SVN源码管理

  • junit+mockito 单元测试与mock框架

  • 集成 JaCoCo分析单元测试的覆盖率

  • Jenkins集成

  • Sonar分析源代码质量

  • Glassfish Web容器发布

  人人都在谈敏捷开发的时代,所谓工欲善其事必先利其器……在此之前得有jdk环境,在这不多说了。

Maven构建自动化编译打包项目
  官网:http://maven.apache.org/
  如果在服务器上配置编译环境,只需要下截一个免安装的maven运行包,解压后设置环境变量便可使用。
  如果在eclipse下就不需要了,因为eclipse已集成了maven环境。

Eclipse IDE开发环境
  用eclipse 建立maven project后,在eclipse上调试,我是用jetty来跑开发环境,因为jetty是个较轻量级的web容器,在开环境里占用的资源相对少些,开发过程中会同时用到多种软件,机器上资源得省则省。有人会问我:“为何不用Myeclipse? ” 我会答:“老大,Myeclipse是商业软件,收费的呀!”
  eclipse + maven + jetty 的热布署参考:http://blog.csdn.net/esinzhong/article/details/26070723

Maven 集成jacoco分析单测试的覆盖率
  在父项目的pom.xml上加入如下配置



<build>
<plugins>
......
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-prepare-agent-integration</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-report-integration</id>
<goals>
<goal>report-integration</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<runOrder>random</runOrder>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<executions>
<execution>
<id>default-integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
......
</plugins>
</build>   

  若需要eclipse 的可显环境下可以看到覆盖情况,可以在eclipse安装个插件:EclEmma
  参考:https://www.ibm.com/developerworks/cn/java/j-lo-jacoco/

SVN源码管理
  源码版本管理利器:SVN
  参考我在CSDN博客写的安装配置(CentOS):http://blog.csdn.net/esinzhong/article/details/8013816
  Windows的安装配置简单点:https://www.visualsvn.com/server/
  不过我更倾向于Linux的,别问我为什么,呵呵……

jenkins yum安装
  持续集成的利器:jenkins,官网: http://jenkins-ci.org/
  jenkins为何物?可以看看这介绍:http://velep.com/archives/867.html
  安装参考: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions



sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

  安装完成后,配置文件在:/etc/sysconfig/jenkins
  启动



service jenkins start

  如何使用参考:http://blog.csdn.net/littlechang/article/details/8642149

Sonar yum 安装
  源码质量分析管理利器:Sonar ,官网:http://www.sonarqube.org/
  参考:http://sonar-pkg.sourceforge.net/



sudo wget -O /etc/yum.repos.d/sonar.repo http://downloads.sourceforge.net/project/sonar-pkg/rpm/sonar.repo
yum install sonar

  安装默认路径在:/opt/sonar/
  配置文件在:/opt/sonar/conf/sonar.properties
  (本人用的是mysql, mysql的安装也不多说了 ,因此修改:sonar.properties )



sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar9?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

  启动



service sonar start

  Sonar服务是启动了,访问http://192.168.0.240:9000,还需要maven编译配置的支持,在~/.m2/下创建setting.xml内容如下:



<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://192.168.0.240:9000</sonar.host.url>
<!-- sonar mysql database : change to your mysql info -->         
                <sonar.jdbc.url>jdbc:mysql://192.168.0.240:3306/sonar9</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
</properties>
</profile>
</profiles>
</settings>
  maven 编译时如下



mvn clean install sonar:sonar  
  此时便会进行源代质理分析了并提交报告到sonar服务上去了。可以访问http://192.168.0.240:9000看报表了。

Nexus 私有Maven仓库
  Nexus用来管理开发的底层核心公用库、代理被GFW墙了的一些公开库(比如googlecode的)非常有效。
  安装参考:http://blog.csdn.net/shenshen123jun/article/details/9084293
  项目的pom.xml配置如下:
  在project节点下加入distributionManagement(用于编译打包上传到maven私有仓库),下面地址为参考,勿直直接使用:)



<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.0.240:8060/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.0.240:8060/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
  maven 打包上传命令:



mvn deploy
  上一步其实还是会打包上传不成功,因为没有设置私有仓库的身份授权,私有仓库身份配置参考:http://blog.csdn.net/hualom/article/details/8070320
  私有身份的账号密码需要配置到开发机器的~/.m2/settings.xml的文件settings节点下(~在linux/unix下表地当前用户的根目录,windows是C:\users\{当前用户名}):如下



<servers>
<server>
<id>snapshots</id>
<username>sing</username>
<password>password</password>
</server>
<server>
<id>releases</id>
<username>sing</username>
<password>password</password>
</server>
</servers>
  留意上面的颜色对应,再执行mvn deploy应该就没问题了
  还在不间断更新中...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349129-1-1.html 上篇帖子: Linux运维(3年以内) 下篇帖子: spring mvc 和ajax异步交互完整实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表