- 他者が作成したプログラムにちょっと変更を加えて使いたい
- その言語は未経験だけれど、コードの変更自体は検索したり周辺コードのコピペで何とかなりそう
- しかし、変更したコードをどうやってビルドすれば良いんだ…?
なんてことがたまにあります。
ビルドするソースコード一式を取得したら、ディレクトリ構成を確認します。
プロジェクトルートディレクトリに 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のバージョンが書かれているでしょう。
あるいは、ルートディレクトリにある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をインストールします。 LinuxであればパッケージマネージャからOpenJDKがインストールできるでしょう。 WindowsであればOracleのサイトからOracleJDKインストーラをダウンロードするのが簡単でしょう。 OpenJDK/OracleJDKどちらの実装でも大抵は問題ないはずですが、保守的に行くのであればOracleJDKをインストールする方が無難と言えます。
OracleJDKは次のURLからダウンロードできます。
古いバージョンが必要な場合は、このページの下の方にあるリンク、"Java Archive"をたどります。
ダウンロードするのはJREではなくJDKです。これはOpenJDKを導入する場合も同様です。 JREは実行環境のみで、コンパイラなどを含んでいません。
次のURLから最新版(本ドキュメント記載時点で 3.5.3 )をダウンロードし、適当な場所に展開します。Linuxであればパッケージマネージャからインストールできるかもしれませんが、バージョンが古い場合もありますので注意してください。
bin
ディレクトリにPATH
を通しておきましょう。
モノによっては次の環境変数を要求するものもあります。何かそれっぽいエラーが出たら本節を思い出して設定してみてください。 具体的な設定値については検索してください。
環境変数名 | 説明 |
---|---|
JAVA_HOME |
Javaインストール場所を設定する |
M2_HOME |
Mavenインストール場所を設定する(最新版を使用していればこれを要求されることはないはずですが) |
プロジェクトルートディレクトリで次のコマンドを実行します。
mvn -Dmaven.test.skip clean package
ビルドが成功すると、target
ディレクトリ直下に所望のファイルが生成されているはずです。
以上です。おつかれさまでした。
行いたい作業を終えたら、環境をクリーンアップします。
能動的に行ったこと以外で変わっていることとしては、ホームディレクトリにMavenのキャッシュディレクトリ .m2
ができていますので、これを削除するのを忘れずに。
ソースコードを改変しようとした場合、あまり慣れていない言語なのでコード補完が欲しくなります。 そこで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
を選択します。その後、編集対象のディレクトリを指定すれば完了です。