Javaアプリケーションを作るときにまずやってること
DevLOVE関西で実験的なイベントをさせてもらいました。
このイベントのおかげで、自分がアプリケーション作るときに最初にどうしてるかを確認できたので晒してみます。誰かの役に立つかどうかは知らない。あ、Macです。ある程度はWindowsでもいけると思うけど、ある程度だと思う。
なおSTSとかIDEのプロジェクト生成機能を使えば一発で済むことだったりする。宗教上の理由で使わないけど。
やってること
基本的にマウスを触る必要はないです。それぞれの詳細は次の通り。長く見えるかもしれませんが、(IDEAの起動とgradleのjarのダウンロード時間を除けば)全部で30秒くらいです。
作業ディレクトリを作る
% git init {作るもの} % cd {作るもの}
mkdir {作るもの}
して cd {作るもの}
して git init
することもあります。
たまにこの段階で README.md
を作ってコミット、ライセンスファイルを作るときはGitHubで作ってからcloneします。
ビルドスクリプトを用意する
記憶かける程度ならそれで。
% vi build.gradle
だいたいこれくらい。たまに cat>build.gradle
で書いたりもしますが、気分です。
apply plugin: 'java' repositories.jcenter() dependencies { testCompile 'junit:junit:4.12' }
Javaのバージョンやエンコードの設定などが無いですが、一旦作ってから後で変えればいいと思っているのでこだわりません。
これよりも多く書く場合(作るものが決まってるとか)は次のいずれかになります。イベントでは「手元のテンプレートをコピる」をしました。
- 手元のテンプレートをコピる
- ググる
- Spring Initializr
手元のテンプレートをコピる
% cp {テンプレートのあるとこ}/build.gradle ./
ググる
ググって出てきたの(主にGettingStarted)を切り貼りします。
MavenCentralRepositoryを検索
使いたいgroupIdとかがわかっている場合はこっちで検索。
Spring Initializr
便利ですね。
必要なディレクトリを作る
% mkdir src/main/java src/main/resources src/test/java src/test/resources
これをするエイリアスを作っています。前段のテンプレートをコピるのをあわせたのもあるので、そっちを使うことが多いです。
alias mkjavadirs='mkdir src/main/java src/main/resources src/test/java src/test/resources' alias initSpringProject='mkjavadirs && cp {テンプレートのあるとこ}/springboot.gradle ./build.gradle'
と言う感じ。
IDEを起動して取り込む
% idea build.gradle
IntelliJのコマンドラインランチャーを使います。
Tools / Create Command-Line Launcher
から作れるもので、 idea
コマンドで新しくプロジェクトが開けます。
コマンドラインラインチャーを作らないなら、IDEAを立ち上げてからOpenでbuild.gradleを選ぶのですが、若干面倒。
テストを書いて実行する
こんな感じのテストを作って実行します。
import org.junit.Test; public class HogeTest { @Test public void test() throws Exception { } }
即捨てるのでデフォルトパッケージです。確認したいのは環境です。テストが実行できる環境になっているかとか。
面倒に思えるかもしれませんが、テストの作成は以下でできます。
- Projectの
src/test/java
ディレクトリを選択[Command]+1
から上下キー、もしくはマウスクリックします
[Command]+n
で新規のメニューを開いて[Enter]
- 新規クラス作成のダイアログが出る
HogeTest
[Enter]
- クラスができる
[Esc]
- エディタがアクティブになる
O
- 新規行ができる。vimすばらしい。
test
[Tab]
- Live Templatesによりテストメソッドが生成される
test
- テストメソッド名を入力
[Ctrl]+[Alt]+r
[Enter]
- テストが実行される
キーを押す回数は30回程度、今やってみたら12秒でした。( HgeTest
ってtypoったけど。)
これをサボると、たまに「なんかビルドできない」とかで悩んだりして馬鹿らしいので、ビルドスクリプトを切り貼りしたときや、環境の更新をした後などは必ずやります。
SpringBootアプリケーションの場合
テストではなく Application
クラスで代用します。
起動すれば環境としては問題無いと判断できます。
コミットする
% git add . % git commit -m"init"
いつでもここに戻ってこれるように。
この段階のリポジトリ
GitHub - irof/DevKan20180305 at a4ccd5d761ccb58cd66bdbec1516cfb2f41852c6
コミットとしてはこの2つ。
- https://github.com/irof/DevKan20180305/commit/50e8815aa1d9e9d748187d5fd042e0777f3754a8
- https://github.com/irof/DevKan20180305/commit/a4ccd5d761ccb58cd66bdbec1516cfb2f41852c6
さらに前段のことや、周囲のことや、マルチプロジェクトの場合とか、とかとか
WEB+DB PRESS vol.98 「実践!イマドキのビルド環境」に書いてます!
- 作者: 丸山晋平,前佛雅人,横田真俊,小原薫,小笠原空宙,高橋征義,牧大輔,大沢和宏(Yappo),久田真寛,のざきひろふみ,うらがみ,池田拓司,ひげぽん,遠藤雅伸,海野弘成,はまちや2,竹原,日高正博,WEB+DB PRESS編集部,-
- 出版社/メーカー: 技術評論社
- 発売日: 2017/04/22
- メディア: 大型本
- この商品を含むブログを見る