SonarQubeをUbuntu14.04にインストール
コードの品質管理ツールであるSonarQubeのインストール手順をまとめる。 SonarQubeの説明は、ユカイ、ツーカイ、カイハツ環境!(17):コード探知機「Sonar」でプロジェクトの深海を探れ! (1/4) - @ITを読むべし。
SonarQubeのセットアップ
SonarQubeは、以下の3つのコンポーネントを必要とする。
- データベース
- Webサーバ
- アナライザ
データベースとアナライザはいくつか選択肢があるけど、今回は、データベースをMySQL、アナライザはMavenのPluginを使う。 他の構成で設定したければ、Installing - SonarQube - Confluenceを参考に。
MySQLの設定
MySQLのインストールはネット調べればすぐ出るので今回は省略し、設定だけ書く。
まず、ターミナルで以下のコマンドを打つ。
mysql -u root -p
次に以下の設定を行う。
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES;
↓こんなの↓を用意してくれているのでそれを使用すればいいと思う。 sonar-examples/scripts/database/mysql at master · SonarSource/sonar-examples · GitHub
Web serverのインストール
/etc/apt/sources.listに以下の内容を追加する。
deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/
そして以下のコマンドを打つ。
$sudo apt-get update $sudo apt-get install sonar
次に、/opt/sonar/conf/sonar.propertiesを以下のように編集する。
# The schema must be created first. sonar.jdbc.username=sonar #コメントを外す。 sonar.jdbc.password=sonar #コメントを外す。 #----- MySQL 5.x sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #コメントを外す。
設定が完了たら、SonarQubeを実行する。
$sudo service sonar start
http://localhost:9000にアクセスし、以下の画面が表示されれば準備完了。
アナライザでメトリクス収集する
Mavenのプロジェクトからアナライザを実行して、メトリクスの収集結果をWebサーバで確認する。 今回は以下のプロジェクトで確認する。
java-maven-simple/pom.xmlに以下の設定を追加する。
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <sonar.language>java</sonar.language> <!-- ここから --> <sonar.jdbc.url> jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 </sonar.jdbc.url> <sonar.jdbc.username>sonar</sonar.jdbc.username> <sonar.jdbc.password>sonar</sonar.jdbc.password> <sonar.host.url> http://localhost:9000 </sonar.host.url> <!-- ここまで追加 --> </properties>
以下のゴールを実行する。
$mvn sonar:sonar
エラーなく完了すると、http://localhost:9000に「Simple Java Maven Project」が追加される。
projectsタブの「Simple Java Maven Project」をクリックすると、プロジェクトの詳細なメトリクスが表示される。
以上で、SonarQubeのインストールが完了!
参照URL
Setup and Upgrade - SonarQube - Confluence
Sonar native packages
Ubuntu14.04にJenkinsをインストールした
話題のCIサーバを導入ですよ。
Oracle JDK 8インストール手順
JenkinsはJavaを必要とするのでOracle JDK 8をインストールした。公式での推奨はOpen JDK 7だけど、問題ないだろう。
Oracle JDKをインストールすために、以前書いた方法で、PPAリポジトリを追加して、Java8をインストールした。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Jenkinsインストール手順
インストール方法は、公式ページを参考にした、というかそのままやった。特につまずくことなし。 Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
インストール後に、http://localhost:8080にアクセスすればJenkinsのTOP画面が開く。
Eclipse Plug-inに含まれるFileの取得
Eclipseのプラグイン開発でプラグイン内に静的にファイルをおいて、それを実行時に取得したいことがたまにある。 そんなときは以下のようにすれば、取得できる。
Bundle bundle = Activator.getDefault().getBundle(); URL fileUrl = bundle.getEntry("/resources/hoge.txt"); File file = null; try { file = new File(FileLocator.resolve(fileUrl).toURI()); } catch(IOException | URISyntaxException e) { e.printStackTrace(); }
「お金持ちの教科書」を読んだ
お金持ちになるために気になった部分をメモしとく。
- 作者: 加谷珪一
- 出版社/メーカー: CCCメディアハウス
- 発売日: 2014/02/10
- メディア: Kindle版
- この商品を含むブログを見る
お金持ちは人に感謝しない P.97
お金持ちは人から何かしてもらったら感謝ではなく、お礼をする。 自分は他人からお礼されるだけのことをしているか、振り返る。
お金持ちはすべて自分のせいにする P.100
お金持ちになれる人は、他人が引き起こした事態や、自分自身の環境などもすべて自分のせいと考えることができる。 すべての責任が自分にあると考えると冷静な危機管理を行うことになる。
人を妬むと、人と違うことができなくなる P.149
人を妬むとうことは相手と同じ土俵に立っていることを意味する。それは、与えられた競争のルールを無意識に受け入れてしまっている。お金持ちになるためには、自分で競争のルールを作り出さなければならない。
物に興味をもつ P.158
お金儲けの仕組みに興味関心を持ち、それを普遍化して理解する。
安心ではなく安全を求める P.170
安全なものは安心であるけど、安心は安全ではない。安心という言葉に惑わされない。
「使われる側」になってはいけない P.212
自分の能力を人に認めてもらってお金をもらう(雇ってもらう)という発想ではなく、「自分に投資をすれば、あなたも儲かりますよ」という「上から目線」が大事。
ラッキーであることを否定するな P.219
偶然がもたらすパワーの恐ろしさを知り、人と違うことをしないと大金は稼げないことや、偶然の出会いも確実にお金に変えていく貪欲さが必要である。 がんばれば、ご褒美をもらえるという考え方では、与えられたゲームの中でしかプレイできない。
お金について学ぶ
最近読んだお金に関する本。
ちょっと前まで、働いて稼いだお金で最低限の暮らしができればいいと思ってたけど、その考えは甘かったなと振り返る。
知っておきたいホントに大事なお金の話
- 作者: 佐伯良隆
- 出版社/メーカー: 高橋書店
- 発売日: 2013/08/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
お金の教科書。お金の特性について丁寧に教えてくれる。
改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)
改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)
- 作者: ロバートキヨサキ,白根美保子
- 出版社/メーカー: 筑摩書房
- 発売日: 2013/11/08
- メディア: 単行本
- この商品を含むブログ (2件) を見る
お金に対する考え方を大きく変えてくれた素晴らしい本、ベストセラーらしいし、もっと早くから読んでおけばよかった。
お金の大事な話~「稼ぐX貯まるX増える」のヒミツ~
- 作者: 泉正人
- 出版社/メーカー: WAVE出版
- 発売日: 2009/12/16
- メディア: ペーパーバック
- 購入: 3人 クリック: 12回
- この商品を含むブログ (8件) を見る
「金持ち父さん」の行っていることを実践して実践して成功した人が書いた本。 この人が作ったファイナンシャルアカデミーで投資について学べるので、本を読んで興味が出た人は一度無料セミナーに参加してみると良いかも。
Android Studioでアプリ開発を始めた
「Android Studioではじめる 簡単Androidアプリ開発」を購入したので、早速Android StudioでAndroidアプリの開発環境作った。
Android Studioではじめる 簡単Androidアプリ開発
- 作者: 有山圭二
- 出版社/メーカー: 技術評論社
- 発売日: 2014/11/21
- メディア: 大型本
- この商品を含むブログを見る
Android Studioのインストール方法が本の説明と変わっていたけど、最新のインストール方法をWeb上で公開してくれている問題なく進められた。
http://gihyo.jp/book/2014/978-4-7741-6998-9
半年ぐらい前にWeb上の情報だけで環境構築しようとしてややこしくて面倒くさくなって投げ出したのだけど、エミュレータ上でハロワを出力するまで行けた、ありがたやー。(1章から3章まで)
書いてあるとおりに進めれば良いだけなのでとりあえず開発環境を作ってアプリ開発したいって人にはもってこいやね。サンプルのソースコードも展開してくれてるしね。
あと個人的にはAndroid Studioで説明してくれているのもありがたい。普段はEclipse使いなのだけど、Android Studioに(というかIntelliJ IDEAに)あこがれを抱いていたので。
日付文字列をDateオブジェクトに変換する方法
Javaで文字列の日付をSimpleDataFormatでフォーマットを指定してDateオブジェクトに変換する方法。
文字列を日付でソートしたいときに便利かも。
import static org.junit.Assert.assertThat; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import static org.hamcrest.CoreMatchers.*; import org.junit.Test; public class DataFormatTest { private DateFormat usDateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.US); private DateFormat jaDateFormat = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss"); @Test public void test() throws ParseException { Date date1 = usDateFormat.parse("10/Aug/2014:20:41:03"); assertThat(date1.toString(), is("Sun Aug 10 20:41:03 JST 2014")); Date date2 = jaDateFormat.parse("10/08/2014:20:41:03"); assertThat(date2, is(date1)); } }