FrontPage Javaでアプリケーションを作成する場合、ひとつのアプリケーションを 複数のプロジェクトから構成する場合もよくある。 Gradleでは、どのようにして複数プロジェクトのビルドを行うことが出来るのか、 以下に記述する。 マルチプロジェクトビルドの例 † 以下のようなプロジェクト構成で、ビルドを行えるようにする。 gradle-multi │ ├─app └─common gradle-multiが親プロジェクトで、その下位プロジェクトのappがcommonへ依存するとというよくある形である。 ↑ settings.gradleの定義 † 親プロジェクト直下にsettings.gradleを定義する。 以下のように記述する。 include 'common', 'app' これでサブプロジェクトを認識するらしい。 以下でもOK。 include ':common', ':a
はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Parameter plugin の Single Select ようなパラメータ形式で、リビジョンやタグを選択できるプラグインです。 Git 初期設定 Git Install Git がインストールされていないなら、apt や yum でインストールしておいて良いでしょ
よく訓練されたアップル信者、都元です。ちょっと時間があいてしまいましたが、先週金曜日、2015年8月28日、東京駅のリクルートテクノロジーズ様ご提供会場において日本Springユーザ会主催のSpring in Summer 〜 夏なのにSpringというイベントが催されました。 そこでSpring BootアプリケーションをAmazon Elastic Beanstalkに一発でデプロイしてみようと題して1セッションお話させて頂きました。 大人気だったJosh Long氏 *1によるセッションの裏番組であるにもかかわらず、ご参加いただいた皆様、ありがとうございました。正直私は、Josh Long氏のセッションを聞きに行きたかったですw さておき。 要約 システム(≠アプリケーション)は、そのデプロイ方法・起動方法が全て記述されている(Full Described)ことが望ましいです。 「リ
あちこちでそれなりに話題になっているけど、先日にCentOS 7がリリースされた。 CentOS 7にはifconfigコマンドが無いなど、結構アグレッシブにモリモリと変わっている部分も多いけど、その辺のレポートは色々あるのでわざわざ私は書かなくて良いだろう。 そこで、この記事ではCentOS 7のTomcatに絞って変更点をまとめておく。なお本記事では、以下のバージョンのCentOSで調査しました。 CentOS 6.5 (64bit) CentOS 7.0.1406 (64bit) 復習:CentOS 6でTomcat CentOS 7でのTomcatを見る前に、まずCentOS 6ではどうだったかをちょっとおさらいしておく。 CentOS 6の公式rpmのTomcatは長らくVer.6(Tomcat 6.0.24)で放置されており、Tomcat 7.xは提供されていない。何度かRed
私的Java開発をJenkinsでCIするためのbuild.gradleとJenkinsの設定です。要不要に応じて書き換えたり足したりが必要です。特にチェックルール。 環境 Java 1.7 Groovy 1.8.6 Ant 1.9.2 Ivy 2.2.0 Gradle 1.11 Mac OS X 10.9.2 全体の流れ Jenkinsに必要なプラグインをインストール GradleでFindBugs, PMD, CPDを実行するようbuild.gradleを作成 Eclipseでは Jenkinsにいれるプラグイン Gradle plugin - jenkins+gradle連携 FindBugs Plug-in - バグ検知 PMD Plugin - コーディングチェック Violations plugin - 静的レポートの集計表示 JaCoCo plugin - コードカバレッジの
個人的にテストコードを書いたり、Gradle で自動化するのを実践しているのですが、 仕事に活かせているのは小規模で自分の裁量が大きいプロジェクトに限られています。 大規模なプロジェクトになると色々と抵抗勢力が多くて、色々と説得するのが億劫なので こっそり Gradle を仕込んで Jenkins 動かそうと今試みています。 個人的にはコソコソ動いてておもしろいので、成果をメモしていきます。 "ふつう" な前提条件 Gradle を仕込むのは「ふつうの Eclipse プロジェクト」です。 ここで言う「ふつう」とは… ◯Maven ディレクトリ構成ではない src/main/java, src/main/resource, src/main/webapp といったディレクトリ構成ではなく、 src の下に java ファイルがあったり、WebContent ディレクトリの下に WEB-IN
Gradle にも大分慣れてきたし、そろそろ 実際にプロジェクトで使えるように準備しないと... まずは Jenkins CI で Gradle が利用できるように準備しようかな。 今時のプロジェクトでは Jenkins CI ぐらい当たり前ですよね。 と言うことで、今回は Jenkins CI で Gradle する最も簡単な (と思われる) 方法です。 実は Jenkins CI で Gradle を利用するために 必要な準備なんて何もありません。 インストールレスで Gradle してみる でも紹介した 『Gradle Wrapper』 さえ使えば、一般的なジョブの設定をするだけでいいんです。 もし、Jenkins CI 上で環境構成を変更する必要があるのであれば Gradle で環境ごとに構成を変更する Gradle で環境ごとに構成を変更する その2 Gradle で環境ごとに構
閉鎖環境のJenkinsでGradleを使ってビルドする方法をまとめてみた。閉鎖環境じゃなかったら、gradleWrapperを使って簡単にできるみたい(であってるかな?)。 幸いにも、俺の職場は開発PCは外部にアクセスできるので好きなものを落としてきて入れれるので、Jenkinsサーバが外部アクセスできなくてもいろいろ出来ました。 Jenkins Gradle pluginをインストールする プラグインは、以下のサイトからダウンロードしてインストールします。 http://updates.jenkins-ci.org/download/plugins/gradle/ インストールは、ダウンロードしたgradle.ppiをJenkinsにアップロードするだけでOKで、「Jenkinsの管理->プラグインの管理画面」から行います。 下の画像のように、高度な設定タブを選択して先ほどダウンロード
前回までJPAの使用方法を解説してきた。今回は、JPAを利用する上で、テーブルの主キーおよびエンティティのIDの設計で考慮しておくべき事柄を説明する。 複合主キーの定義方法 IDの定義方法を検討をするために、まずJPAでの複合主キーの定義方法を解説する。 エンティティのIDは、永続性コンテキストの中でエンティティを一意に識別する値である。また、EntityManger#find の引数にIDを渡すことからわかるように、JPAでは ID は1つのオブジェクトでなければならない。 そのため、@Embeddable アノテーションを付与した複合主キーを表すクラスを定義する必要がある。(エンティティクラスの内部クラスとすることが多い) @Embeddable public static class PK { @Column(length = 10) private String name; @Co
ビズリーチの丁稚エンジニア長谷部です。 英語で言うと apprentice to a systems今回の例では、当月のデータを取得したいので、fromTmが当月の月初日、toTmが当月の翌月の月初日となりますね。 すると、DBから取得したデータから当月の月初日と当月の翌月の月初日を導出する必要が出てきますが、Javaで特定の日時から別の日時を導出するにはCalendarクラスを用いるのが便利です。 上記の内容を踏まえると、DBから取得してきたデータと同じ月のデータを取得するには下記のステップを経ることになります。 Step1:DBから取得したデータ(Timestamp型)をCalendar型に変換する Step2:Caledar型に変換したデータの月初日を導出する Step3:導出した月初日をTimestamp型に変換する Step4:Step2で導出した月初日の翌月日付を導出
今回はSpring Bootで作ったWebアプリに対して簡易的な認証を行います。 参考 3章の5 「Spring Securityで認証・認可を追加」にSpring Securityの設定方法が色々と解説されています。 はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS) 作者: 槇俊明出版社/メーカー: 工学社発売日: 2014/11メディア: 単行本この商品を含むブログ (5件) を見る Spring Securityを依存関係に追加する basic認証には、Spring Boot版のSpring Securityを利用します。 Spring Securityが追加されることで、すべてのURLに対してbasic認証が適用されます。 <dependency> <groupId>org.springframework.boo
前回の『Facebook に接続』で、Spring Social を使い Facebook との接続(Connection)を確立しました。今回は、確立した Connection をローカルユーザーアカウントと紐付けて DB で管理する部分を作ります。 ConnectionRepository と UsersConnectionRepository 前回のような直球型では、アプリケーションを起動する度に facebook との“OAuth2 ダンス”が必要になります。一度確立した Connection オブジェクトを永続化し、再利用する仕組みを用意すれば、そうした手間がなくなります。 Spring Social リファレンスの“2.3 Persisting connections”を読むと Connection 管理の中核は、永続化された各(ローカル)ユーザーの Connection オブ
ちょい仕事で Java で SSH/SCP を実行するライブラリがあるといいな的展開があって、ちょっと調べたら良さそうなのがあったので、メモ。 Ganymed SSH-2 for Java http://www.ganymed.ethz.ch/ssh2/ 最初読めなかったけど、「ガニメデ」ですね。 100% Pure Java SSH2 をサポート コマンド実行、shell, scp, port forward 機能をサポート BSD ライセンス 昔は Java から scp を叩ける良いライブラリがまだ無く、結局そのときは外部コマンド実行によって実現したものだが、今はこんないいものがあるんやね。 外部コマンド実行だと、どうしても コマンドごとに認証(よってパフォーマンス悪し) 若干不安定(よってエラー処理が面倒) 標準入出力周りの処理をしっかりする必要がある(よってコーディング量が増える
はじめに ついに Windows 8 にした。 XP のサポートが終了したというのもあったのだけれども Java 8 がインストールできなかったのが致命的だった。 .Net Framework 4.5 や PHP 5.5 このあたりが使えなくなったのは耐えていたのだけれど この春、Java に見捨てられてもう我慢できなくなった。 Java 8 が使えたらきっと今も XP 使ってると思う。 で、OAuth わたしにとって OAuth といえば Facebook なのですが 以前、Facebook のアプリを作る機会があり OAuth の認証処理に結構悩まされた。 リクエストが行ったり来たり、どのタイミングでが何が送られて来るのか?また何を送るのか? と同時に向こう側の処理はどうなっているんだ!? 相手を知ればこちら側の処理がもっと明確に見えてくるのではと思ったりした。 そんな訳で今回は、Sp
テストクラスを書くときに使いそうなので事前に調査した。 調べたのは下記の通り Springを使ってるのでDIしている箇所がモックにできるか staticメソッドの戻りもモックにできるか new Date()...の戻り値もモックにできるか 結論:できた。 これ1つで全部まかなえたのは結構大きいかもしれない。できないことはなんだろうか?? package com.hachiyae.jmockit; import mockit.Expectations; import mockit.Mock; import mockit.MockUp; import org.junit.Test; import java.util.Calendar; import java.util.Date; import static org.hamcrest.core.Is.is; import static org.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く