Eclipse環境でGradleビルドするJavaアプリケーションの開発tips

ギークフィードエンジニアの君島です。Java経験は7年目になります。

 

最近はLaravelなどのフレームワーク、Node.jsなどのプラットフォームを使用した環境での開発が多かったのですが、ふとEclipse環境でGradleビルドのJavaアプリケーションを開発することがありました。

また時間が経つと忘れてしまうのと、さっと環境作りたいというような目的で、いくつかのポイントをtipsとして残しておくことにします。

以下の流れで読めば、ひと通りアプリケーションの開発ができるようになっています。

 

環境

OS Windows10 (64bit)
IDE Eclipse 4.10.0
JDK JDK8
Gradle 5.5

 

Tips

プロジェクト作成

コマンドプロンプトで、プロジェクトを作成したフォルダ上で以下のコマンドを実行します。

プロジェクトの種類や名前など聞かれますが、必要あれば変更します。デフォルトのままでも構いません。

 

成功すると、build.gradleが出来上がっているので、Eclipseで読み込めるようにします。

build.gradleに以下を追記します。

 

次に以下のコマンドを実行すると、Eclipseの管理ファイルが作成されます。

 

これでEclipseにインポートできるプロジェクトとなりました。

 

Mainクラスのスニペット

エントリーとなるMainクラスをスニペットとして記録しておきます。これを編集して実装していきます。

 

GradleからJava実行したい場合はbuild.gradleに以下のようにプラグインとMainクラスの追記をします。ソースディレクトリを新たに追加した場合はディレクトリ名の指定も必要になります。

 

依存関係の解決

新たにライブラリを参照する場合に、手動で配置したりpom力を発揮するのは面倒なので、リポジトリから取ってくるようにbuild.gradleに記載します。

例えば、2つのリモートリポジトリを指定して、jacksonを参照するようにした例を記載します。

 

ただ、これでGradleではビルド成功するのに、Eclipseでは読み込めないことがあります。その場合は、以下のコマンドを実行して、.classpathを書き換えてもらいます。

 

fat Jarの作り方

ビルドはこちらで問題無いかと思いますが、Java実行時に参照の指定が面倒になることがあります。容量に制約がないようであればライブラリのjarを1つのファイルに抱き込んだfat Jarにしてしまいましょう。build.gradleに以下のように指定します。

 

Gradleを以下のように実行するとfat Jarを作成してくれます。

 

また、Jarの実行方法は以下の通りです。参照の指定がないので、実行コマンドはかなり簡単になるでしょう。

 

fat Jarの作成エラー解消:shadow.org.apache.tools.zip.Zip64RequiredException: archive contains more than 65535 entries.

gradle shadowJar実行時に以下のようなエラーが出ることがあります。

内容は見ての通り。大量のファイルの抱き込み過ぎで発生します。

> Task :shadowJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:shadowJar’.
> shadow.org.apache.tools.zip.Zip64RequiredException: archive contains more than 65535 entries.

To build this archive, please enable the zip64 extension.
See: https://docs.gradle.org/5.5/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:zip64

 

このときはbuild.gradleを下記のように書き換えればOKです。

 

Eclipse環境でGradleビルドするJavaアプリケーション開発のまとめ

Eclipse環境でGradleビルドのJavaアプリケーションを開発する際のtipsでした。

最後に上記を踏まえたbuild.gradleを残しておきます。

 

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
君島翔
君島翔
セクションマネージャー/エンジニア株式会社ギークフィード
Java, .NET系の言語が得意。Laravel始めました。 エディタはvim派。 自分が楽するためにテストやビルド、デプロイを自動化させたい。 AWSもよく触ってます。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ