私は現在Eclipse(強いて言えばEclipseを拡張した開発環境)を使用してJavaの開発案件に携わっています。

先日の職場の会話に耳をそばだてていたところ、気になる会話がありましたので、ご紹介しておきます。

クリーン≠ビルド

クリーンした?クリーンしないとファイル出来ないよ。

その話をされた方は私から見て目上の方にあたるのですが、新人相手にとんでもないことを教えてるな、と感じました。

Javaエンジニアの方に対してであっても、「クリーンしたら(クラスファイルなどの)ファイルが出来る」というのはかなり乱暴な解釈です。

.NETエンジニアであればその区分けが自然に付くかと思いますが、新人研修などで使用する言語はJavaが主流だと思われるので、声を大にして主張したいところです。

結論から先に言えば、Eclipseのクリーンには、クリーン終了後に即ビルドを実行するオプションが存在します。

デフォルトではどうか忘れてしまいましたが、このオプションが有効化されていることでクリーン実行時にもビルドが走る為にビルド生成物が作成されます

しかし、クリーン本来の機能としてはその逆で、ビルド生成物を全て削除することです。

ビルド生成物というのは、Javaでいうクラスファイル(.class)のことです。

作成するファイルは拡張子.javaですが、コンパイル(ビルド)することでクラスファイルが出来上がりますよね。

これからJavaの開発に携わっていく方には、本来クリーンはビルド生成物を削除する機能であるが、Eclipseではオプションとしてクリーン後即時ビルド実行が可能なためにそのオプションを有効化し、クリーンを実行することでビルド生成物が出来上がる、ということをきちんと理解して頂ければと思います。

あと単に、クリーンしたらクラスファイルできる、としか言わない先輩や上司は温かい目で見守ってあげてください。

余談ですが、.NETの開発環境であるVisualStudioではリビルドがEclipseのクリーン(ただし、即時ビルドオプション有効化の場合に限る)にあたります

クラスファイル≠メンバー間で受け渡せるモノ

まだ続きます。

classes配下に提供ファイルを配置してください。

こちらはメッセージで流れてきたものですが、「根本的な解決策じゃない!」とマウスを握りつぶしそうになりました。

基本的にclassesフォルダ配下に配置されるのは、ビルド生成物になります。つまりクリーンを実行するとすべて消えます

開発の中でビルドだけを実行するのであれば特段問題はありませんが、プログラミングに謎の問題はつきものです。クリーンで解決することなんて多々あります

開発の中で必要なファイルが提供された場合は、classes配下ではなく、ビルド(コンパイル)対象ファイルが配置されている『元のパス』に該当のファイルを置く必要があります。

そうすることでクリーン実行しても再度ビルドすればclasses配下に必要なファイルが自動で配置されます。

開発の際に提供ファイルの配置場所をclasses(.NETならばbin)配下に指定された場合、そう指定した人を温かい目で見守ってあげてください。

ファイルの『元のパス』が不明な場合には、ビルド実行した時に、指定されたパスに配置された他のファイルをGrepなどで検索してみてください。

ビルド生成物が配置されるパスと『元のパス』の2件がヒットするはずです。

最後に

余談ですが、Javaなどのオブジェクト指向言語で開発する際にはコチラの書籍がおススメです。

メソッドやパッケージを紹介するような入門書ではないのでJavaやC#などの開発経験がある方向けですが、オブジェクト指向型の考え方を学ぶのに最適です。

以上です。

スポンサーリンク