데이터 베이스 MySQL 튜토리얼 集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5

集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5

Jun 07, 2016 pm 03:47 PM
소개하다 짓다 개요 환경 상세한 만나다 질문 통합

一、概述 笔者将详细介绍集成环境搭建及需要注意的事项。此些点都摸索了许多天完成的。一些问题是在搭建过程中实际遇到过的。当然大多数都是环境配置的问题。如果遇到集成环境的一些问题,欢迎和笔者联系。笔者很愿意与大家交流。 二、背景知识 为什么要集成

一、概述

笔者将详细介绍集成环境搭建及需要注意的事项。此些点都摸索了许多天完成的。一些问题是在搭建过程中实际遇到过的。当然大多数都是环境配置的问题。如果遇到集成环境的一些问题,欢迎和笔者联系。笔者很愿意与大家交流。

二、背景知识

为什么要集成环境。当然是为了代码质量。通过不断地集成来提高代码的质量。检查代码质量有两种方式。第一种是,静态测试:包括:codereview、静态代码检测技术等;第二种是,动态测试:包括:单元测试,接口测试,UI测试,人工点页面等测试。静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。在软件开发过程中,静态代码分析往往先于动态测试之前进行,同时也可以作为制定动态测试用例的参考。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。

三、软件介绍及准备

我们主要用到 hudson、sonar、Jetty 、MySQL开源软件。这些全部都是开源软件。我简短介绍下,大家可以到它们的主页去详细了解。

  • Hudson 是一个可扩展的持续集成引擎。主要用于持续、自动地构建/测试软件项目。
  • Sonar是一个开源平台,用于管理Java源代码的质量。从 Sonar 1.6 版本开始,Sonar从一个质量数据报告工具,转变成为现在的代码质量管理平台。
  • Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
  • MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。现在有许多大公司也考虑这一构架。

三、架构介绍

我们需要三台逻辑上服务器,当然都可以在一个机器上面。就是 HUDSON、SONAR、MYSQL。关系如下图所示:

集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5

我们架构图大致如下所示:

集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5


HUDSON与SONAR集成起来是用HUDSON上面的一个sonar插件。所有的命令都是用mvn来做的。

三、软件准备及相关系统配置(所有的下载地址都是目前有效的,以后就不保证了哦)

  • JAVA、MAVEN请先配置好。
  • JETTY,我们需要从http://wiki.eclipse.org/Jetty/Howto/Install_Jetty下载,下载地址如下。无需配置。
  • wget http://dist.codehaus.org/jetty/jetty-hightide-8.0.0/jetty-hightide-8.0.0.v20110901.tar.gz
    tar xfz jetty-hightide-8.0.0.v20110901.tar.gz
    로그인 후 복사
  • HUDSON,http://hudson-ci.org/   因为是一个war包,我们也不可在代码中配置,配置都在页面。需要把hudson-2.1.2.war重名为hudson.war,再拷到jetty的webapps目录下。
  • wget http://java.net/projects/hudson/downloads/download/war/hudson-2.1.2.war
    로그인 후 복사
  • SONAR,http://www.sonarsource.org/downloads/  需要配置conf/sonar.properties文件。
  • wget http://dist.sonar.codehaus.org/sonar-2.11.zip
    unzip sonar-2.11.zip
    로그인 후 복사
    要注意,不可重复,url编码设置为utf8
    sonar.jdbc.username:                       sonar
    sonar.jdbc.password:                      sonar 
    sonar.jdbc.url:                            jdbc:mysql://10.20.155.8:3306/sonar?useUnicode=true&characterEncoding=utf8
    sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver
    sonar.jdbc.validationQuery:                select 1
    로그인 후 복사
  • MYSQL,这里需要你对mysql数据库有一定的认识。知道基本的编码问题及访问权限问题。以下简单列出一些配置。
  • su root
    wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-5.5.17-1.linux2.6.x86_64.tar/from/http://ftp.iij.ad.jp/pub/db/mysql/
    tar xf MySQL-5.5.17-1.linux2.6.i386.tar
    rpm -i MySQL-server-5.5.17-1.linux2.6.x86_64.rpm 
    rpm -i MySQL-client-5.5.17-1.linux2.6.x86_64.rpm 
    
    로그인 후 복사
    修改配置:
    cp /usr/share/doc/MySQL-server-5.5.17/my-large.cnf /etc/my.cnf
    vi /etc/my.cnf
    在[client]下面加上 default-character-set = utf8
    在[mysqld]下面加上 character-set-server=utf8  init_connect = 'SET NAMES utf8'
    启动:/etc/init.d/mysql start 
    登陆:mysql -h localhost -u root -p
    修改密码:/usr/bin/mysqladmin -u root -h vm-qa-crm-155-8.hst.bjc.kfc.alidc.net password 'new-password'
    mysql>  SHOW VARIABLES LIKE 'character_set_%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    mysql> create database sonar 
    也可以用 Navicat for MySQL 等创建 数据库等。
    
    로그인 후 복사

五、HUDSON相关配置及编译流程

把相关服务启动后,包括jetty、sonar、mysql。就可以访问hudson(http://10.20.155.8:8080/hudson/)与sonar (http://10.20.155.8:9000/)。

大致我们的配置流程与每个阶段运行的代码(这些代码都是配置在hudson上面的,下面会给出配置的位置):

集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5

  • 准备测试环境:mvn -f all/pom.xml clean install  -Dmaven.test.skip
  • 单元测试: mvn -f all/pom.xml cobertura:cobertura -Dcobertura.report.format=xml
  • 静态检测: mvn -all/pom.xml -Dsonar.sourceEncoding=GBK -Dsonar.dynamicAnalysis=reuseReports -e -B sonar:sonar -Dsonar.jdbc.driver=com.mysql.jdbc.Driver -Dsonar.jdbc.url=jdbc:mysql://10.20.155.8:3306/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8 ******** ******** -Dsonar.host.url=http://10.20.155.8:9000

HUDSON的配置:

  • 下载相关的最新版插件 Hudson Cobertura plugin (目前1.1)、Jenkins Sonar Plugin(目前1.7.1)。
  • 在hudson系统设置中指定好相关的JAVA、MAVEN,也可以在 .bash_profile 文件中配置JAVA_HOME、MAVEN_HOME
  • 配置好sonar插件的一些属性
  • 集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5
  •  新建任务,设置 ,配置如下(只有一些重要的):
    • Source Code Management选择svn,填写好分支。
    • Build Triggers 做好适合自己的触发模式
    • Build 填写好 如下图所示:
    • 集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5
    • Post-build Actions里面设置后续的操作:
      • Publish Cobertura Coverage Report :Cobertura xml report pattern填写他推荐的:**/target/site/cobertura/coverage.xml 。其他的不变
      • Sonar:POM填写你的pom.xml
  • 恭喜您,做完以上的一些,大致就可以跑起来了。也能在mysql数据库中看到sonar的表。如果还没有成功请看看常见问题列表。如果没有,请留言,我尽力帮助您。

六、常见的一些问题

  1. 找不到mysql的驱动。
    1. 这个需要在sonar配置mysql数据库。上面已经配置了。
  2. 源码在存入数据库的时候报错。错误为:[ERROR]  Incorrect string value: '\xF2\xB7\xB5\xBB\xEF\xBF...' for column 'data' at row 1   ....  Caused by: java.sql.SQLException: Incorrect string value: '\xF2\xB7\xB5\xBB\xEF\xBF...' for column 'data' at row 1
    • 这个错误就是这些字符不能插入到数据库中。这个肯定就是编码的问题了。源文件不能插入到数据库中。
    • 过程为:
      • 从本地磁盘中读出 文件,此涉及到解码。如果存储的文件编码为GBK那么读文件的时候也要设置成GBK。
      • 把内存中的对象转化成流存储到数据中。此涉及到网络传输的问题。我们必须编码与解码一致。如:client是utf8那么数据库也要用这个utf8
    • 这个问题大部分的文件是,要读取文件的时候,解码是错误的。我们可以用 -Dsonar.sourceEncoding=GBK 来设定。当然也可能是别的原因,这个需要自己多加分析。
  3. cobertura已经跑完了单元测试,soanr又跑一次单元测试。我们希望只跑一次单元测试。并且结果在hudson上面展示。sonar上面也可以展示。
    1. 我们可以用 cobertura 先跑单元测试,后在跑sonar 的时候 指定参数:-Dsonar.dynamicAnalysis=reuseReports 服用以前的报告。
  4. cobertura不能统计单元测试覆盖率。错误为:No coverage results were found using the pattern '**/target/site/cobertura/coverage.xml' relative to '/home/hudson/.hudson/jobs/finance/workspace'.
    1. 这个需要设置 -Dcobertura.report.format=xml 这个参数,这个也是 cobertura 的参数,默认值为html.

七、参考资料

  • 官方文档搭建文档:http://docs.codehaus.org/display/SONAR/Hudson+and+Jenkins+Plugin
  • cobertura地址:http://mojo.codehaus.org/cobertura-maven-plugin/cobertura-mojo.html (cobertura.report.format = xml )
  • sonar配置项:http://docs.codehaus.org/display/SONAR/Advanced+parameters   (sonar.sourceEncoding = gbk  sonar.dynamicAnalysis = reuseReports)
  • 跳过测试:http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html(mvn install -Dmaven.test.skip=true  maven.test.skip)http://maven.apache.org/maven-1.x/plugins/test/properties.html(maven.test.skip )
  • surefire:http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html
  • mysql服务器参数:http://dev.mysql.com/doc/refman/5.5/en/server-options.html
  • hudson相关文档:http://hudson-ci.org/docs/index.html

八、版权申明

  • http://blog.csdn.net/bxyz1203/article/details/6980174
  • 作者:就职于 阿里巴巴 封神


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Hua Yishan Heart of the Moon Lu Shu의 기술과 속성 소개 Hua Yishan Heart of the Moon Lu Shu의 기술과 속성 소개 Mar 23, 2024 pm 05:30 PM

Hua Yishan Heart Moon에서 Lu Shu는 SSR의 유명인사입니다. 그는 매우 인상적인 치명타율을 가지고 있습니다. 많은 플레이어들이 Lu Shu에 대해 잘 모릅니다. 화이샨 달의 심장 여슈의 스킬과 속성에 대한 소개를 살펴보세요. 연예인 속성 연예인 스킬 1. Lu Ming Shuzhong 스킬 설명 : Lu Shu는 Shuzhong의 Qiongqihui에서 태어나 어렸을 때부터 무술을 연마했으며 뛰어난 무술 실력을 가지고 있습니다. 적의 뒷열 공격력의 100%만큼 기본 공격 피해를 주고, 대상의 분노를 10 감소시킵니다. 스킬 속성 : 2레벨 : 기본 공격력이 105%로 증가됩니다. 2레벨 : 기본공격 데미지가 110%로 증가되고, 대상의 분노가 15포인트 감소됩니다. 2레벨: 기본 공격력이 115%로 증가되었습니다. 2레벨 : 기본 공격력이 120%로 증가하고 대상의 분노가 20 감소합니다. 레벨 2: 기본 공격

Mistlock Kingdom의 야생에서도 건물을 지을 수 있나요? Mistlock Kingdom의 야생에서도 건물을 지을 수 있나요? Mar 07, 2024 pm 08:28 PM

플레이어는 Mistlock 왕국에서 플레이할 때 건물을 짓기 위해 다양한 재료를 수집할 수 있습니다. 많은 플레이어가 야생에서 건물을 지을 수 있는지 알고 싶어합니다. Mistlock 왕국에서는 건물이 제단 범위 내에 있어야 합니다. . Mistlock Kingdom에서는 야생에 건물을 지을 수 있나요? 답변: 아니요. 1. 미스트락 왕국의 야생 지역에는 건물을 지을 수 없습니다. 2. 건물은 제단의 범위 내에서 건축되어야 한다. 3. 플레이어 스스로 Spirit Fire Altar를 설치할 수 있지만, 범위를 벗어나면 건물을 지을 수 없습니다. 4. 산에 직접 구멍을 파서 집으로 삼을 수도 있어 건축자재를 소모할 필요가 없습니다. 5. 플레이어가 직접 지은 건물에는 편안함 메커니즘이 있습니다. 즉, 인테리어가 좋을수록 편안함이 높아집니다. 6. 높은 편안함은 플레이어에게 다음과 같은 속성 보너스를 제공합니다.

PyCharm 초보자 가이드: 대체 함수에 대한 종합 분석 PyCharm 초보자 가이드: 대체 함수에 대한 종합 분석 Feb 25, 2024 am 11:15 AM

PyCharm은 개발 효율성을 크게 향상시킬 수 있는 풍부한 기능과 도구를 갖춘 강력한 Python 통합 개발 환경입니다. 그 중 교체 기능은 개발 과정에서 자주 사용되는 기능 중 하나로, 개발자가 코드를 빠르게 수정하고 코드 품질을 향상시키는 데 도움을 줄 수 있습니다. 이 기사에서는 초보자가 이 기능을 더 잘 익히고 사용할 수 있도록 특정 코드 예제와 함께 PyCharm의 대체 기능을 자세히 소개합니다. 대체 기능 소개 PyCharm의 대체 기능은 개발자가 코드에서 지정된 텍스트를 빠르게 대체하는 데 도움이 될 수 있습니다.

Samsung S24ai 기능에 대한 자세한 소개 Samsung S24ai 기능에 대한 자세한 소개 Jun 24, 2024 am 11:18 AM

2024년은 AI 휴대폰 원년이다. AI 스마트 기술을 탑재해 휴대폰을 더욱 효율적이고 편리하게 사용할 수 있는 휴대폰이 늘어나고 있다. 최근 연초 출시된 갤럭시 S24 시리즈에서는 제너레이티브 AI 경험이 다시 한 번 향상됐다. 자세한 기능 소개는 아래에서 살펴보자. 1. 생성적 AI의 강력한 강화 Samsung Galaxy S24 시리즈는 Galaxy AI의 강화를 통해 많은 지능형 애플리케이션을 제공했습니다. 이러한 기능은 Samsung One UI6.1과 긴밀하게 통합되어 사용자가 언제든지 편리하고 지능적인 경험을 얻을 수 있습니다. 휴대전화의 성능과 사용 편의성을 향상시킵니다. 갤럭시 S24 시리즈가 개척한 원 앤 검색 기능은 사용자가 길게 누르기만 하면 되는 기능 중 하나입니다.

Oracle API 통합 전략 분석: 시스템 간 원활한 통신 달성 Oracle API 통합 전략 분석: 시스템 간 원활한 통신 달성 Mar 07, 2024 pm 10:09 PM

Oracle API 통합 전략 분석: 시스템 간의 원활한 통신을 위해서는 특정 코드 예제가 필요합니다. 오늘날 디지털 시대에 내부 기업 시스템은 서로 통신하고 데이터를 공유해야 하며 Oracle API는 원활한 통신을 돕는 중요한 도구 중 하나입니다. 시스템 간 통신. 이 기사에서는 OracleAPI의 기본 개념과 원칙부터 시작하여 API 통합 전략을 살펴보고 마지막으로 독자가 OracleAPI를 더 잘 이해하고 적용할 수 있도록 구체적인 코드 예제를 제공합니다. 1. 기본 오라클 API

도지코인이란 무엇인가요? 도지코인이란 무엇인가요? Apr 01, 2024 pm 04:46 PM

Dogecoin은 고정된 공급 한도가 없고, 빠른 거래 시간, 낮은 거래 수수료, 대규모 밈 커뮤니티가 있는 인터넷 밈을 기반으로 만들어진 암호화폐입니다. 용도로는 소액 거래, 팁, 자선 기부 등이 있습니다. 그러나 무제한 공급, 시장 변동성, 조크 코인으로서의 지위 역시 위험과 우려를 불러일으킵니다. 도지코인이란 무엇입니까? Dogecoin은 인터넷 밈과 농담을 기반으로 만들어진 암호화폐입니다. 기원과 역사: Dogecoin은 2013년 12월 두 명의 소프트웨어 엔지니어 Billy Markus와 Jackson Palmer에 의해 만들어졌습니다. 당시 인기 있었던 "Doge" 밈에서 영감을 받아, 영어가 서툰 시바견이 등장하는 코믹한 사진입니다. 특징 및 이점: 무제한 공급: 비트코인과 같은 다른 암호화폐와는 달리

계정 매트릭스를 구축하는 방법은 무엇입니까? 행렬 구성의 기능은 무엇입니까? 계정 매트릭스를 구축하는 방법은 무엇입니까? 행렬 구성의 기능은 무엇입니까? Mar 23, 2024 pm 06:46 PM

오늘날 정보가 풍부한 시대에 소셜 미디어 플랫폼은 사람들이 정보를 얻고 공유하는 주요 수단이 되었습니다. 개인과 기업에게 정보의 최대 전파와 영향력 강화를 위한 효과적인 계정 네트워크 구축은 해결해야 할 시급한 과제가 되었습니다. 1. 계정 매트릭스를 구축하는 방법은 무엇입니까? 1. 타겟 고객을 명확히 합니다. 계정 매트릭스를 구축하기 전에 핵심은 타겟 고객을 명확하게 정의하고 그들의 요구, 관심사 및 소비 습관을 심층적으로 이해하여 보다 타겟화된 콘텐츠 전략을 개발할 수 있다는 것입니다. 2. 적절한 플랫폼을 선택하십시오. 대상 그룹의 특성에 따라 레이아웃에 적합한 소셜 미디어 플랫폼을 선택하십시오. 현재 주류 소셜 미디어 플랫폼에는 Weibo, WeChat, Douyin, Kuaishou 등이 있습니다. 각 플랫폼에는 고유한 사용자 그룹과 커뮤니케이션 특성이 있으므로 실제 상황에 따라 선택해야 합니다.

네온 어비스의 8번째 컬러 무기 소개 네온 어비스의 8번째 컬러 무기 소개 Mar 31, 2024 pm 03:51 PM

여덟 번째 색상은 Neon Abyss의 무기입니다. 많은 플레이어들이 여덟 번째 색상의 무기에 대한 탄도와 무기 강도를 활용하는 방법을 알고 싶어합니다. 그럼 네온 어비스의 8색 무기 궤적, 무기 강도, 무기 게임 플레이에 대한 자세한 가이드를 살펴보겠습니다. 네온 어비스 컬러 8 상세 가이드 무기 소개: 마법사의 비밀 무기! 무기 공격 속도: 보통 무기 강도: 보통 무기 게임 플레이: 여덟 번째 색상의 공격 방법은 단일 대상을 세 번 공격한 후 광선을 발사합니다. 탄도 디스플레이:

See all articles