集成环境搭建及遇到的问题 jetty8+hudson2.2.0+sonar2.11+mysql5
一、概述 笔者将详细介绍集成环境搭建及需要注意的事项。此些点都摸索了许多天完成的。一些问题是在搭建过程中实际遇到过的。当然大多数都是环境配置的问题。如果遇到集成环境的一些问题,欢迎和笔者联系。笔者很愿意与大家交流。 二、背景知识 为什么要集成
一、概述
笔者将详细介绍集成环境搭建及需要注意的事项。此些点都摸索了许多天完成的。一些问题是在搭建过程中实际遇到过的。当然大多数都是环境配置的问题。如果遇到集成环境的一些问题,欢迎和笔者联系。笔者很愿意与大家交流。
二、背景知识
为什么要集成环境。当然是为了代码质量。通过不断地集成来提高代码的质量。检查代码质量有两种方式。第一种是,静态测试:包括: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。关系如下图所示:
我们架构图大致如下所示:
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上面的,下面会给出配置的位置):
- 准备测试环境: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插件的一些属性
-
- 新建任务,设置 ,配置如下(只有一些重要的):
- Source Code Management选择svn,填写好分支。
- Build Triggers 做好适合自己的触发模式
- Build 填写好 如下图所示:
- Post-build Actions里面设置后续的操作:
- Publish Cobertura Coverage Report :Cobertura xml report pattern填写他推荐的:**/target/site/cobertura/coverage.xml 。其他的不变
-
Sonar:POM填写你的pom.xml
- Source Code Management选择svn,填写好分支。
- 恭喜您,做完以上的一些,大致就可以跑起来了。也能在mysql数据库中看到sonar的表。如果还没有成功请看看常见问题列表。如果没有,请留言,我尽力帮助您。
六、常见的一些问题
- 找不到mysql的驱动。
- 这个需要在sonar配置mysql数据库。上面已经配置了。
- 源码在存入数据库的时候报错。错误为:[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 来设定。当然也可能是别的原因,这个需要自己多加分析。
- cobertura已经跑完了单元测试,soanr又跑一次单元测试。我们希望只跑一次单元测试。并且结果在hudson上面展示。sonar上面也可以展示。
- 我们可以用 cobertura 先跑单元测试,后在跑sonar 的时候 指定参数:-Dsonar.dynamicAnalysis=reuseReports 服用以前的报告。
- cobertura不能统计单元测试覆盖率。错误为:No coverage results were found using the pattern '**/target/site/cobertura/coverage.xml' relative to '/home/hudson/.hudson/jobs/finance/workspace'.
- 这个需要设置 -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
- 作者:就职于 阿里巴巴 封神

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PyCharm は、開発効率を大幅に向上させる豊富な機能とツールを備えた強力な Python 統合開発環境です。その中でも置換機能は開発プロセスで頻繁に使用される機能の 1 つであり、開発者がコードを迅速に修正し、コードの品質を向上させるのに役立ちます。この記事では、初心者がこの関数をよりよく習得して使用できるように、特定のコード例と組み合わせて PyCharm の置換関数を詳細に紹介します。置換関数の概要 PyCharm の置換関数は、開発者がコード内の指定されたテキストを迅速に置換するのに役立ちます

2024 年は AI 携帯電話元年です。AI スマート テクノロジーにより、携帯電話はますます効率的かつ便利に使用できるようになります。最近、今年の初めにリリースされたGalaxy S24シリーズは、生成AIエクスペリエンスを再び改善しました。以下で詳細な機能の紹介を見てみましょう。 1. 生成 AI は Samsung Galaxy S24 シリーズを強力に強化します。Galaxy S24 シリーズは、Galaxy AI によって強化され、多くのインテリジェント アプリケーションをもたらします。これらの機能は Samsung One UI6.1 と緊密に統合されており、ユーザーはいつでも便利なインテリジェントなエクスペリエンスを得ることができ、パフォーマンスが大幅に向上します。携帯電話の効率と使いやすさ。 Galaxy S24 シリーズで先駆けて開発されたサークルアンド検索機能は、長押しするだけで実現できる機能です。

OracleAPI統合戦略分析: システム間のシームレスな通信を実現するには、特定のコード・サンプルが必要です。今日のデジタル時代では、社内の企業システムは相互に通信してデータを共有する必要があり、OracleAPIは、システム間のシームレスな通信を実現するための重要なツールの1つです。システム。この記事では、OracleAPIの基本概念と原則から始まり、API統合戦略について説明し、最後に読者がOracleAPIをよりよく理解して適用できるように具体的なコード例を示します。 1. 基本的な Oracle API

Hua Yishan Heart Moon では、Lu Shu は SSR の有名人です。彼は単一ターゲットのバックライン プレイヤーとして配置されており、非常に優れたクリティカル ヒット率を持っています。多くのプレイヤーは Lu Shu についてあまり知りません。私があなたに持ってきたものは次のとおりです。 . 華宜山心月陸朔のスキルと属性の紹介をご覧ください。有名人の属性 有名人のスキル 1. Lu Ming Shuzhong スキルの説明: Lu Ming Shuzhong スキルの説明: Lu Shu はShuzhong の Qiongqihui で生まれ、子供の頃から武術を練習しており、優れた武術のスキルを持っています。敵の後列攻撃力の100%に等しい基本攻撃ダメージを与え、対象の怒りを10ポイント減少させる。スキル属性: レベル 2: 基本攻撃ダメージが 105% に増加します。レベル 2: 基本攻撃のダメージが 110% に増加し、ターゲットの怒りが 15 ポイント減少します。レベル 2: 基本攻撃ダメージが 115% に増加しました。レベル 2: 基本攻撃のダメージが 120% に増加し、ターゲットの怒りが 20 ポイント減少します。レベル2:基本攻撃

Dogecoin は、インターネット ミームに基づいて作成された暗号通貨であり、固定供給上限がなく、速い取引時間、低い取引手数料、そして大規模なミーム コミュニティを備えています。用途には、少額の取引、チップ、慈善寄付が含まれます。しかし、その無限の供給、市場のボラティリティ、ジョークコインとしての地位は、リスクと懸念ももたらします。ドージコインとは何ですか? Dogecoin は、インターネットのミームやジョークに基づいて作成された暗号通貨です。起源と歴史: Dogecoin は、2 人のソフトウェア エンジニア、ビリー マーカスとジャクソン パーマーによって 2013 年 12 月に作成されました。当時人気だった「Doge」ミームからインスピレーションを得た、片言の英語を話す柴犬をフィーチャーしたコミカルな写真。特徴と利点: 無制限の供給: ビットコインなどの他の暗号通貨とは異なります。

ミストロック王国でプレイするとき、プレイヤーはさまざまな材料を集めて建物を建てることができます。多くのプレイヤーは、野生で建物を建てるべきかどうか知りたいと考えています。ミストロック王国では、建物は野生で建てることはできません。祭壇の範囲内になければなりません。 。ミストロック王国の自然の中に建物を建てることはできますか? 答え: いいえ。 1. ミストロックキングダムの荒野には建物を建てることができません。 2. 建物は祭壇の範囲内に建てなければなりません。 3. プレイヤーは自分で精霊の火の祭壇を設置できますが、範囲を離れると建物を建設できなくなります。 4. 山に直接穴を掘って家にすることもできるので、建築資材を消費する必要がありません。 5. プレイヤー自身が建てた建物には快適性のメカニズムがあり、内装が良いほど快適性が高くなります。 6. 高い快適性により、プレイヤーに属性ボーナスがもたらされます。

高速スコア照会ツールは、生徒と保護者にとって利便性を高めます。インターネットの発展に伴い、ますます多くの教育機関や学校がオンライン スコア チェック サービスを提供し始めています。お子様の学業の進歩を簡単に追跡できるように、この記事では、一般的に使用されているオンラインスコアチェックプラットフォームをいくつか紹介します。 1. 利便性 - 保護者は、オンラインスコア確認プラットフォームを通じて、いつでもどこでも子供のテストスコアを確認できます。保護者は、コンピュータまたは携帯電話で対応するオンラインスコア確認プラットフォームにログインすることで、いつでも簡単に子供のテストスコアを確認できます。インターネットに接続できる環境であれば、仕事中でも外出中でも、保護者は子どもの学習状況を把握し、的を絞った指導や支援を行うことができます。 2. 複数の機能 - スコアのクエリに加えて、コースのスケジュールや試験の手配などの情報をオンラインで検索することもできます。

ネオンアビスの8色目は武器の1つですが、8色目の武器の弾道や武器の強さの使い方を知りたいプレイヤーも多いと思います。それでは、Neon Abyss の 8 色の武器の軌道、武器の強さ、武器のゲームプレイに関する詳細なガイドを見てみましょう。ネオンアビスカラー8 詳細ガイド 武器紹介:魔法使いの秘密兵器!武器の攻撃速度: 普通 武器の強さ: 中程度 武器のゲームプレイ: 8 番目の色の攻撃方法は、3 回の単体攻撃とその後の光線の発射です。弾道表示:
