はじめに
- 他者が作成したプログラムにちょっと変更を加えて使いたい
- その言語は未経験だけれど、コードの変更自体は検索したり周辺コードのコピペで何とかなりそう
- しかし、変更したコードをどうやってビルドすれば良いんだ…?
なんてことがたまにあります。
そんな時に参考になるようなドキュメントを目指して記述しました。
プロジェクトの構造を確認する
ビルドするソースコード一式を取得したら、ディレクトリ構成を確認します。
プロジェクトルートディレクトリに pom.xml
というファイルがあれば本ドキュメントが対象としている Java プロジェクトです。
an-app
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── (ディレクトリ階層とJavaソースコード)
│ └── resources
│ └── (ディレクトリ階層とリソースファイル)
└── test
├── java
│ └── ...
└── resources
└── ...
複数のモジュールで構成されている場合は次のように入れ子になっている場合もあります:
an-app-parent
├── an-app-core
│ ├── pom.xml
│ └── src
│ └── ...
├── an-app-lib
│ ├── pom.xml
│ └── src
│ └── ...
└── pom.xml
この場合、それぞれのディレクトリがpom.xml
を持ちます。
pom.xml
は プロジェクト構造を記述するファイルで、Apache Maven が使用します。
Java では Maven 以外にも同じようにプロジェクト構造を管理するアプリケーションがあります。それぞれルートディレクトリに固有のファイルやディレクトリを作成しますので、そのファイル/ディレクトリを見れば何でプロジェクトが管理されているか分かる、ということになります。
本ドキュメントの対象外ですが、一例を示します。
ファイル | 説明 |
---|---|
build.gradle | Gradle管理プロジェクト。Android プログラムの標準はこれ。 |
build.xml | Apache Ant管理プロジェクト。Maven が主流になる前のデファクトスタンダード。歴史のあるプロダクトでまだ利用されていることも。 |
ビルドに必要なアプリケーションをインストールする
必要な Java バージョンを調べる
ビルドに必要な Java のバージョンを調べておきます。
基本的には実行環境と同じバージョンでビルドすれば良いはずなので、エンドユーザ向けドキュメントが付属しているのであれば、そこに必要とする Java のバージョンが書かれているでしょう。
あるいは、ルートディレクトリにあるpom.xml
を開き、次の項目の値を調べてみても良いでしょう。通常、どちらか一方にコンパイルに使用する Java のバージョンが記載されています(参考)。
project
>properties
>maven.compiler.source
maven-compiler-plugin
という単語を検索し、その下に書かれているconfiguration
>source
なお、 Java5 から Java8 までは、 Javan
と Java1.n
というのは同じものを指します( Java8 = Java1.8 )。
バージョン 9 以降は、単に Java9 , Java10 と言い、 Java1.9 や Java1.10 という呼び方はしません。
バージョンが分からなかったら?
取り敢えず、現時点では 1.8 を利用することにしておけば問題が起こりにくいでしょう。
1.8 までは概ね後方互換性を保っていますが、9 以降はコンパイルオプションが変わったりしており、必ずしも過去に作成したソースがそのまま通るとは限りません。
アプリケーションのダウンロードしインストールする
次の通り、JDK 及び Maven をダウンロードし、インストールします。
JDK
上で確認したバージョンの JDK をインストールします。
Linux であればパッケージマネージャから OpenJDK がインストールできるでしょう。
Windows であれば Oracle のサイトから OracleJDK インストーラをダウンロードするのが簡単でしょう。
OpenJDK/OracleJDK どちらの実装でも大抵は問題ないはずですが、保守的に行くのであれば OracleJDK をインストールする方が無難と言えます。
OracleJDK は次の URL からダウンロードできます。
古いバージョンが必要な場合は、このページの下の方にあるリンク、"Java Archive“をたどります。
ダウンロードするのは JRE ではなくJDKです。これは OpenJDK を導入する場合も同様です。
JRE は実行環境のみで、コンパイラなどを含んでいません。
Apache Maven
次の URL から最新版(本ドキュメント記載時点で 3.5.3 )をダウンロードし、適当な場所に展開します。Linux であればパッケージマネージャからインストールできるかもしれませんが、バージョンが古い場合もありますので注意してください。
bin
ディレクトリにPATH
を通しておきましょう。
環境変数設定(必須ではない)
モノによっては次の環境変数を要求するものもあります。何かそれっぽいエラーが出たら本節を思い出して設定してみてください。
具体的な設定値については検索してください。
環境変数名 | 説明 |
---|---|
JAVA_HOME |
Java インストール場所を設定する |
M2_HOME |
Maven インストール場所を設定する(最新版を使用していればこれを要求されることはないはずですが) |
ビルドする
プロジェクトルートディレクトリで次のコマンドを実行します。
mvn -Dmaven.test.skip clean package
ビルドが成功すると、target
ディレクトリ直下に所望のファイルが生成されているはずです。
以上です。おつかれさまでした。
アンインストールする
行いたい作業を終えたら、環境をクリーンアップします。
能動的に行ったこと以外で変わっていることとしては、ホームディレクトリに Maven のキャッシュディレクトリ .m2
ができていますので、これを削除するのを忘れずに。
その他情報
IDE(Eclipse)を使用する
ソースコードを改変しようとした場合、あまり慣れていない言語なのでコード補完が欲しくなります。
そこで Eclipse の導入手順についても触れておきます。
ダウンロードとインストール
次のページの Eclipse IDE for Java Developers をダウンロードし適当な場所に展開します。
展開したディレクトリのeclipe
コマンド(Windows はeclipse.exe
かも?)で起動できます。
補完ショートカットキーの確認/変更
Preferences
メニュー(Ubuntu の場合 Window
> Preferences
)を選択します。
開かれたダイアログのツリーメニューで General
> Keys
を選択し、 Content Assist コマンドを検索しましょう。ここで設定されているBindingが補完ショートカットキーです。
プロジェクトのインポート
メニューで File
> Import
を選択し、ダイアログのツリーメニューで Maven
> Existing Maven Projects
を選択します。その後、編集対象のディレクトリを指定すれば完了です。
おわりに
実は私はこれから C#を学ぼうと思っています。
そんな状況で、こういうドキュメントが有れば良いのに、というのが思い浮かんだので自分がよく知っている言語である Java 版を作成してみました。
だれか C#版をください…