<このシリーズの、前の記事 | このシリーズの目次 | このシリーズの、次の記事>
UNO拡張機能を開発するための環境をこれまでの一連の記事で作ったので、AntビルドファイルまたはGradleビルドスクリプトとUNO拡張機能のソースファイルを作って、UNO拡張機能をビルドできる。
ふむ。
実は、それらは、もう作ってあって、ここにある。
テレビのクッキング番組みたいだな . . .
このzipファイルを、ディレクトリ構造を維持して任意のディレクトリ(ここでは、Linux上は~/my-documents/development/java、Windows上はE:\Home\my-documents\development\javaとする)に解凍すると、以下のようなディレクトリおよびファイルに展開されるはずだ。
commonBuild.properties
commonBuild01.xml
commonBuild02.xml
commonBuild01.gradle
commonBuild02.gradle
/unoUtilitiesToDisclose
build.xml
build.gradle
/source
/java
/thebiasplanet
/unoutilities
/serviceshandling
GlobalUnoServicesProviderUtility.java
/resource
MANIFEST.MF.addition
/hiUnoExtensionsUnoExtension
build.xml
build.gradle
/source
/java
/thebiasplanet
/uno
/hiunoextensionsunoextension
HiUnoExtensionsImplementation.java
HiUnoExtensionsUnoExtensionGlobalServicesProvider.java
/resource
MANIFEST.MF.addition
manifest.xml
thebiasplanet.hiunoextensionsunoextension.uno.components
/unoIdl
/thebiasplanet
/uno
/hiunoextensionsunoextension
XHiUnoExtensions.idl
HiUnoExtensions.idl
ふーむ、 . . . 何だ、これらは?
うーん、どう説明するべきか。簡単に説明できるものと簡単には説明できないものがある。理解というものは互いに結びついているものなので、あることを十分に説明するためには、いくつかの基本概念をまず説明しなければならないが、これが長々しくなりかねない。UNOの基本概念をまだ説明していないので、一部のファイルは、それが何なのか説明が難しい。
それはそうだろう。. . . 一部の用語はブラックボックスとして使用して説明するしかないのではないか。
ブラックボックス?
例えば、「XXXという概念がある。ここではこれを十分に説明できないが、 . . .」
ははあ。
いいか、その場を取り繕うために不正確なことを述べるのは避けたい。そうしたい誘惑はあるが、混乱の元になる。我々の説明は、避けられなければ、詳細でなくともよいが、不正確であってはならない、絶対に。
ああ、聞いている人をとりあえず分かった気にさせる(が実際には理解が間違っている)ような不正確なことを言うべきではないということだね。
そうだ。
ここでの私の説明は十分ではないが、UNOの基本概念を学んだあとで、これらのファイルを詳しく説明しよう。
よかろう。
えーと、展開のルートディレクトリにある、'commonBuild.properties'、'commonBuild01.xml'、'commonBuild02.xml'は、共通のAntビルドファイルだ。「共通」というのは、すべてのプロジェクトで使われるという意味で言っている。
複数のプロジェクトがあるということか?
そう、zipファイルには2つのプロジェクトが含まれていて、共通ファイルは、将来のプロジェクトでも使うように意図されている。
分かった。
展開のルートディレクトリにある、'commonBuild01.gradle'と'commonBuild02.gradle'は、共通のGradleビルドスクリプトだ。「共通」の意味は先程と同じだ。
分かった。
'unoUtilitiesToDisclose'ディレクトリには、UNOユーティリティJarファイルを作るUNOユーティリティプロジェクトが格納されている。UNOユーティリティJarファイルは、UNOを使用するプロジェクトから使われる。つまり、同じソースファイルを複数のプロジェクトに含むのは賢くないので、UNOを使用するプロジェクトで共通に使われるものは、1つの個別プロジェクトとして分離してある。
分かった。
プロジェクトディレクトリ内のファイル、'build.xml'は、このプロジェクト用のAntビルドファイルであり、共通Antビルドファイルを利用する。プロジェクトディレクトリ内のファイル、'build.gradle'は、このプロジェクト用のGradleビルドスクリプトであり、共通Gradleビルドスクリプトを利用する。
ははあ。
プロジェクトディレクトリ内の'source'ディレクトリは、全ての種類のソースファイルのルートディレクトリだ。ソースファイルには、Javaソースファイル、設定ファイルといったリソースファイル、UNO独自のソースファイルなどが含まれる。
UNO独自のソースファイル?
これについては後で説明しよう。というのも、このプロジェクトには、UNO独自のソースファイルがない。
オーケー。
'source'ディレクトリ内の'java'ディレクトリは、Javaのソースファイルのルートディレクトリだ。
'GlobalUnoServicesProviderUtility.java'は、UNOのユーティリティクラスだ。このクラスが何のためのものかは、後で触れることにしよう。
'source'ディレクトリ内の'resource'ディレクトリは、リソースファイルのルートディレクトリだ。
'MANIFEST.MF.addition'は、Jarのマニフェストファイルに追加する内容を含んだファイルだ。
分かった。