読者です 読者をやめる 読者になる 読者になる

ふるつき

記事と内容がないです

gradleで簡単なjavaプロジェクトをビルドするときに私がサッと知りたかったこと

java gradle

 ガッコでjavaを触るので……ということでBrainf*ckのインタプリタっぽいのしてみたかったです。

github.com

というのを作ったのですが、せっかくなのでビルドツール使ってみたい、と。

 なんかAntよりも高機能っぽいgradleにしました。これが何なのかはよくわかってないですが、とりあえずビルドできる、と。

gradleの導入

 なんかそれっぽいサイトから落としてきます。Complete distributionにしておけば安全そう。zipなので解凍して、binディレクトリをpathに加えます。後はターミナルからgradle -vとかできることを確認しておく。これでおわり。プロジェクトをつくります。

gradleプロジェクトのディレクトリ構成

 ディレクトリツリーなんてかけないですが、それっぽいものを。

-- build.gradle
|
-- src
  |
  -- main
    |
    -- java
      |
      -- <ここにjavaファイルを置く>

build.gradleとかsrcとかmainとかjavaとかそういう名前は決め打ちっぽいです。javaファイルの名前はなんでも良いし、いくつも置けるし、階層構造でも大丈夫ぽいです。ここに書いた他にもtestかくところとかresourceおくところとかあるみたいですが、そういうのは簡単なjavaプロジェクトに(私視点では)含まれないので省略します。そういうことをしたいひとはこんなところ覗かないでしょうし。

build.gradleファイルの設定

 恐ろしく簡単です。

apply plugin: 'application'

mainClassName = "<ここにmainメソッドがあるクラス名を書く>"

 とりあえずこれだけ書いておけば、満足にビルドできます。なんでこうなるかは考えません。

びるどしてみる

build.gradleと同じディレクトリで、gradle compilejavaしましょう。buildディレクトリ以下にいろいろできます。主にクラスファイルとか。これらはgradle cleanで消えます。

 また、gradle compilejavaのかわりにgradle runすると、mainメソッドが実行されます。楽です。これはcompilejavaのあとにrunしているっぽいので、先程と同様buildディレクトリができます。

 さらに、 gradle distZipするといろいろできます。

 そのほかのこまんどはgradle tasksでみれます。

はっぴー

 gradleはっぴー。たぶん。

ついきする

 単体実行可能なjarを作りたくなることがn回に達して、その度ぐぐってたので書き足すよ。build.gradleの底の方に

jar {
  manifest {
    attributes 'Main-Class': 'ここにmainメソッドを含むクラスの名前を書く'
  }
  from configurations.compile.collect {it.isDirectory() ? it : zipTree(it) }
}

 して、gradle jarすればいいはず。