プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle JDeveloperによるアプリケーションの開発
12c (12.1.3)
E57556-02
  目次へ移動
目次

前
 
次
 

9 Javaプロジェクトのビルド

JDeveloperでは、メイク操作および再ビルド操作、Apache Ant、Apache Mavenなど、プロジェクトのビルドとコンパイルに複数の方法がサポートされています。

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトなどのコンテナに対してメイクを起動できます。

Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。プロジェクトをビルドするには、XMLで作成されたAntビルドファイルを使用します。各ビルドファイルには、1つのプロジェクトと少なくとも1つ(デフォルト)のターゲットが含まれています。

MavenサポートはAntサポートと非常によく似ています。JavaプロジェクトをWebLogicサーバーにデプロイするように、POMのWebLogic Mavenプラグインを構成できます。

この章の内容は次のとおりです。

9.1 Javaプロジェクトのビルドについて

JDeveloperは、ソース・ファイルを無条件でコンパイルする再ビルド操作をサポートしています。最後にコンパイルされてから変更されたソース・ファイル、または変更された依存性のあるソース・ファイルをコンパイルするには、メイク・コマンドを使用します。「プロジェクト・プロパティ」ダイアログでオプションを設定すると、コンパイルするプロジェクトごとにJavaコンパイラを構成できます。

Antには、アプリケーションをビルドするもう1つの方法があります。AntをJDeveloperのメイン・メニューから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットをビルドできます。AntはJDeveloperに統合されています。XMLソース・エディタを使用して、12cアプリケーションおよびプロジェクト向けAntビルドファイルの追加または作成を行ったり、それらを編集したりすることができます。

Mavenはプロジェクト管理ツールであり、このツールには、一貫した自動化ビルド、プロジェクト・オブジェクト・モデル(POM)によるプロジェクトのテストとデプロイメントのプロセス、プロジェクト・ライフサイクル、依存性管理システム、複数のプロジェクトで共有可能なプラグインのセットが用意されています。依存性のリストやユニット・テスト・レポートなどの多様なプロジェクト情報をMavenから取得できます。

9.2 「メイク」コマンドおよび「再ビルド」コマンドによるビルド

表9-1に示すメイク・コマンドと再ビルド・コマンドは、JDeveloperでプロジェクトをコンパイルするための標準操作を実行します。

表9-1 メイク・コマンドおよび再ビルド・コマンド

コマンド 説明

プロジェクトのメイク

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)メイクしてから、プロジェクトをメイクします。

プロジェクトのみメイク

プロジェクトをメイクしますが、そのプロジェクトが依存するプロジェクトはメイクされません。

「プロジェクトをワーキング・セットにする」

ワーキング・セットにあるすべてのプロジェクトをメイクします。

プロジェクトの再ビルド

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)再ビルドしてから、プロジェクトを再ビルドします。

プロジェクトのみ再ビルド

プロジェクトを再ビルドしますが、そのプロジェクトが依存するプロジェクトは再ビルドされません。

「プロジェクト・ワーキング・セットの再ビルド」

ワーキング・セットにあるすべてのプロジェクトを再ビルドします。

すべてメイク

すべてのプロジェクトをメイクします。

すべてクリーン

すべてのプロジェクトをクリーンします。

プロジェクトのクリーン

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)クリーンしてから、プロジェクトをメイクします。


9.2.1 コンパイラ・プリファレンスの設定方法

「プリファレンス」ダイアログの「コンパイラ」ページでコンパイラ・オプションを設定できます。

デプロイメント設定を構成するには、次の手順を実行します。

  1. メイン・メニューから「ツール」→「プリファレンス」を選択します。

  2. 「コンパイラ」ノードを選択します。必要に応じて、コンパイラ・オプションを構成します。詳細は、「ヘルプ」をクリックしてください。

  3. 「OK」をクリックします。

9.2.2 メイクによるコンパイル

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトおよびワークスペースなどのコンテナに対してメイクを起動できます。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。

このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルをメイクするには、次のいずれかを実行します。

  • ファイルのソース・エディタで右クリックして、「メイク」を選択します。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、ツールバーの「メイク」をクリックします。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、「ビルド」メニューから項目「メイク」を選択します。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択し、右クリックして、「メイク」を選択します。

9.2.3 再ビルドによるコンパイル

「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。変更されたソース・ファイルまたは依存性が変更されたソース・ファイルのみを再コンパイルする「メイク」操作とは異なり、「再ビルド」操作には、条件はありません。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルを再ビルドするには、次のいずれかを実行します。

  • 「アプリケーション」ウィンドウでソース・ファイルを1つ以上選択し、「再ビルド」(ファイルが1つの場合)、または「選択されたものを再ビルド」(ファイルが複数の場合)をクリックします。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、ツールバーで「再ビルド」をクリックします。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「ビルド」メニューから項目「再ビルド」を選択します。

  • 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「再ビルド」を選択します。

9.3 依存性チェックの理解

JDeveloperでは、ビルド時に依存性を分析することにより、コンパイルを高速かつ完全に行うことができます。依存性チェックにより、相互に依存するソース・ファイルの不要なコンパイルを減らし、編集およびコンパイルのサイクルを高速化できます。

JDeveloperを使用してコンパイルを行う際に、「メイク」を使用してコンパイルする場合は、常に依存性チェックが実行されます。「メイク」では、JDeveloper内で自動的に作成される依存性ファイルが使用されます。

コマンドラインからコンパイルする場合は、次のパラメータを指定して依存性ファイルを作成または使用します。

javac -make <makedepfile>

9.4 アプリケーションおよびプロジェクトのコンパイル

JDeveloperは、Javaコンパイラ(Javac)を使用してJavaソース・コード(.javaファイル)をJavaバイトコード(.classファイル)にコンパイルします。生成されるバイトコードは、Java Virtual Machine (JVM)のマシン・コードです。Javaソース・ファイルのコンパイルにより、各クラス宣言およびインタフェース宣言に対して個別のクラス・ファイルが生成されます。生成されたJavaプログラムを特定のプラットフォームで実行すると、そのJVMによってclassファイルに含まれるバイトコードが実行されます。

Javacでは、指定されたJavaファイルの他に、対応するクラス・ファイルのないインポート・ファイルがコンパイルされます。(-makeオプションを使用して)依存性チェックを指定しないかぎり、すべてのターゲットJavaファイルがコンパイルされます。詳細は、第9.3項「依存性チェックの理解」を参照してください。

JDeveloper内部で操作する場合、コンパイラとしてJavacが使用されます。コンパイラのオプションは、「プロジェクト・プロパティ」「コンパイラ」「オプション」を選択して調整できます。「コンパイラ・オプション」ページに表示される各オプションの横に説明が表示されます。

9.4.1 コンパイルするプロジェクトの設定方法

「プロジェクト・プロパティ」でオプションを設定すると、プロジェクトごとに、Javaコンパイラを構成できます。たとえば、コンパイラで次のようなコンパイラ・メッセージが表示されないようにする場合があります。

例9-1 コンパイラ・メッセージ

  • 注意: 入力ファイルの中には、未チェック操作または安全でない操作を使用するものがあります。

  • 注意: 詳細は、-Xlint:uncheckedで再コンパイルしてください。

プロジェクト・プロパティをコンパイル用に設定するには、次のようにします。

  1. 「アプリケーション」ウィンドウでプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

    また、「アプリケーション」ウィンドウで、プロジェクト・ノードをダブルクリックすることもできます。

  2. 「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを開きます。

  3. 「オプション」をクリックします。

  4. 「コンパイラ・オプション」の下で、「Javac」ノードを展開します。

  5. オプションで、「警告」ノードを開きます。

    オプションとしてまずここをクリックすると、どのオプションがデフォルトでオンになるかを確認できます。たとえば、「-Xlint:all」がオンになっている場合、すべての-Xlint警告がオンになります。

    例9-1に示す-Xlintメッセージを表示しないようにするには、「コンパイラ」「オプション」に移動して、「プロジェクト・プロパティ」ダイアログで「Javac」「警告」ノードを開きます。これで、表示されるXlintメッセージを指定できます。

  6. オプションで、個別の警告をオフ・ノードを開きます。

  7. 「-Xlint Unchecked」チェック・ボックスの選択を解除します。

  8. すべてのダイアログを閉じて再コンパイルします。


注意:

コンパイル前にすべてのプロジェクト・ファイルを自動的に保存するには、「プリファレンス」ダイアログの「コンパイラ」ページでこれを指定します。

9.4.2 コンパイル用のネイティブ・エンコーディングの指定方法

コンパイラによるマルチバイト文字の解釈方法を制御するコード体系を指定できます。指定しない場合、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。

テキスト文字は、様々なコード体系を使用して表現されます。これらは、Windows環境ではコード・ページ、Javaではネイティブ・エンコーディングと呼ばれます。データをあるコード体系から別のコード体系に移動する場合、変換が必要です。各体系の拡張文字セットは異なる場合があるので、変換によってデータが失われないようにする必要があります。

JDeveloperソース・エディタを含むほとんどのテキスト・エディタでは、動作しているプラットフォームのネイティブ・エンコーディングが使用されます。たとえば、日本語のWindowsではシフトJISが使用されます。ソース・コードがシフトJISを使用してエンコードされている場合、これを米語のWindows環境でコンパイルするには、ソースが正しく読み込まれるようにコンパイラに対してシフトJISエンコーディングを指定する必要があります。

JDeveloperは、現在インストールされているJ2SEに含まれている文字コード体系をサポートしています。

エンコーディング・オプションを設定するには、次のいずれかを実行します。

  1. JDeveloperで、「プロジェクト」「プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを選択します。

  3. コマンドラインで、javacコマンドと-encodingオプションを使用し、その後ろにエンコーディング名を入力します。

  4. 次のいずれかの方法で、エンコーディング名を選択します。

    • 「文字コード」ドロップダウン・リストから名前を選択します。

    • 使用環境のデフォルト・エンコーディングを使用する場合は、「文字コード」ドロップダウン・リストから「default」を選択します。

Java SDKでサポートされるエンコーディングの一覧は、次を参照してください。
http://download.oracle.com/javase/6/docs/technotes/guides/intl/ encoding.doc.html

9.4.3 コマンドラインからのコンパイル

アプリケーション(ワークスペース)とプロジェクトをコンパイルするには、次の2つの方法があります。

  • JDeveloper内部で、アプリケーションとプロジェクトのノードに対してビルドおよびコンパイルの各オプションを使用します。

  • コマンドラインから、ojmakeおよびojdeployを使用します。

jdeveloper/jdev/binディレクトリに「ojmake」「ojdeploy」の両方があります。

  • ojmakeは、デプロイメントを伴わないアプリケーションとプロジェクト、たとえばデプロイメント・プロファイルが定義されていないプロジェクトなどに対して使用できます。

  • ojdeployは、すべてのアプリケーションおよびプロジェクト(デプロイメントを伴うものを含む)のビルドを扱うことができます。これは、ojmakeのスーパーセットと考えられます。

ツールのヘルプは、コマンドラインでojmakeまたはojdeployを実行するだけで表示できます。ヘルプはコンソールに表示されます。


注意:

コマンドラインから操作する場合にはJavacを使用してJavaファイルをコンパイルできますが、Javacを手動で実行してアプリケーションとプロジェクトをビルドすることはできません。ojmakeまたはojdeployを使用する必要があります。

ojmakeの使用方法の詳細は、第9.7.22項「ojdeployおよびojmakeの使用方法」を参照してください。

ojdeployの使用方法の詳細は、第21.8.3項「ojdeployの使用方法」を参照してください。

9.5 アプリケーションおよびプロジェクトのクリーン

クリーンを実行すると、以前のビルドのアーチファクトを削除し、新規に操作を開始できます。「クリーン」コマンドを使用して、アプリケーションまたはプロジェクトのクリーンを実行できます。このコマンドを実行すると、プロジェクトまたはアプリケーションの出力ディレクトリおよびデプロイ・ディレクトリがクリーンされます。

「クリーン」コマンドをアプリケーションまたはプロジェクトに対して実行すると、クラス・ファイル、コピーしたリソース・ファイル、およびデプロイしたファイルのすべてが削除されます。このことを実行すると、出力ディレクトリおよびデプロイ・ディレクトリに古いファイルが確実に残らないようにできます。たとえば、名前変更、移動または削除を行ったクラスと、このようなクラスに属する古いクラス・ファイルは削除する必要があります。同様に、名前変更、移動または削除を行ったリソースやデプロイと、出力ディレクトリまたはデプロイ・ディレクトリに残っているそれらの古いコピーも削除する必要があります。

アプリケーションのデプロイ・ディレクトリの内容が削除されます。

「クリーン」コマンドを正常に実行するには、次の条件が満たされている必要があります。

  • クリーンするプロジェクトの出力ディレクトリ、またはクリーンするアプリケーションの各プロジェクトの出力ディレクトリが指定されていること

  • 出力場所がファイルではなく、ディレクトリとして指定されていること

9.5.1 クリーン方法

「クリーン」コマンドを使用すると、新しいビルド・プロセスを開始するために、以前のビルドから残されたアーチファクトを削除できます。

9.5.1.1 プロジェクトのクリーン

アプリケーション内で単一プロジェクトをクリーンすることができます。

プロジェクトをクリーンするには、次のようにします。

  1. 「アプリケーション」ウィンドウで、クリーンするプロジェクトを選択します。

  2. 「ビルド」メニューで、<project>のクリーン」を選択します。

  3. <project>をクリーン中」ダイアログで、「はい」をクリックします。

9.5.1.2 アプリケーションのクリーン

アプリケーションのクリーンによって、アプリケーションとそのすべてのプロジェクトがクリーンされます。アプリケーションのクリーンを実行すると、次の処理が行われます。

  • アプリケーションを構成する各プロジェクトの出力ディレクトリおよびデプロイ・ディレクトリの内容が削除されます。

  • アプリケーションのデプロイ・ディレクトリの内容が削除されます。

アプリケーションをクリーンするには、次のようにします。

  1. 「アプリケーション」ウィンドウで、クリーンするアプリケーションを選択します。

  2. 「ビルド」メニューで、「すべてクリーン」を選択します。

  3. アプリケーションをクリーン中」ダイアログで、「はい」をクリックします。

9.6 Apache Antによるビルド

Apache Antは、Unixのmakeユーティリティの機能と似たビルド・ツールです。Antは、XML形式のビルドファイルを使用して、アプリケーションとそのコンポーネントを構築するためのプロセスを記述および制御します。Antはクロス・プラットフォームのコンパイルをサポートしており、簡単に拡張できます。Apache Antは、Apache Software Foundationの製品です。詳細は、Webサイト(http://ant.apache.org/index.html)を参照してください。

Antビルドファイルでは、ターゲットの定義とターゲット間の依存性の定義を行います。各ビルドファイルには、1つのプロジェクトと少なくとも1つのターゲットが含まれています。ターゲットは、プログラミングされたタスクのシーケンスです。Antを実行してターゲットを作成する場合、ターゲットが依存する他のターゲットを最初に作成してから、ターゲット独自のタスクが実行されます。

AntはJDeveloperに統合されていて、その一部としてインストールされるため、JDeveloperを拡張機能として追加する必要はありません。アプリケーションまたはプロジェクト用にAntビルドファイルを追加または作成したり、空のビルドファイルを作成することができます。Antビルドファイルを編集するために、JDeveloperでXMLソース・エディタが使用できます。

アプリケーション・レベルでのAntビルドファイルの作成:

  1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

  2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」「Ant」を選択します。

  3. 「項目」リストで、「アプリケーションからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。このダイアログでヘルプを参照するには、[F1]を押します。

  4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.propertiesファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。

プロジェクト・レベルでのAntビルドファイルの作成:

  1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

  2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」「Ant」を選択します。

  3. 「項目」リストで、「プロジェクトからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。このダイアログでヘルプを参照するには、[F1]を押します。

  4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.propertiesファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。

空のAntビルドファイルの作成:

  1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

  2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」「Ant」を選択します。

  3. 「項目」リストで、「空のビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。このダイアログでヘルプを参照するには、[F1]を押します。

  4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。これは、「アプリケーション」ウィンドウの「リソース」ノードに表示されます。

ビルドファイル・ターゲットに対するAntの実行:

  • プロジェクト・ビルドファイル内のターゲットに対して実行する場合。プロジェクトには複数のAntビルドファイルを含めることができますが、プロジェクトのビルドファイルとして指定できるのは1つのみです。プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように、<プロジェクト>でAntを実行」ツールバー・アイコンおよびドロップダウン・メニューを構成できます。

  • Antビルドファイルの編集時に「構造」ウィンドウから実行する場合。XMLソース・エディタでAntビルドファイルを開くと、そのターゲットが「構造」ウィンドウに表示されます。これらを選択して実行できます。

  • 独自に定義した外部ツールから実行する場合。「外部ツールの作成」ウィザードを使用して、Antターゲットを作成するメニュー項目およびツールバー・ボタンを定義します。

9.6.1 プロジェクト・ビルドファイル・ターゲットに対するAntの実行

AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。

プロジェクトには複数のAntビルドファイルを含めることができ、これらの1つをプロジェクトのビルドファイルとして指定できます。<project>でAntを実行」ツールバー・ボタンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。

プロジェクトのビルドファイルを選択して構成するには、Antプロジェクトのプロパティ・ページに移動します(「プロジェクト」「プロジェクト・プロパティ」「Ant」を選択)。

プロジェクトのビルドファイルのターゲットに対してAntを実行するには、次のようにします。

  • ツールバーで、<project>でAntを実行」をクリックします。

    Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

  • メイン・メニューから、 「ビルド」<project>でAntを実行」をクリックします。

    Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

  • 「構造」ペインからターゲットを選択します。

9.6.2 IDEでのAntツールの使用

Antログ・ウィンドウには、Antビルドに固有のメッセージが表示されます。Antログ・ウィンドウには次のような特徴があります。

  • このウィンドウには、1つ以上のターゲットのビルドのためAntを起動することによって生成されたメッセージが表示されます。

  • Antタスクによって生成されたメッセージは、Antビルドファイル内のこれらのタスクの定義にリンクされます。一方、コンパイル・エラーおよび警告は、これらの生成元のソース・コードにリンクされます。

  • カラー・コーディングは、メッセージの出力レベルを示します。

9.7 Apache Mavenによるビルドと実行

Apache Mavenは、ビルド・プロセスの管理と自動化に広く利用されるツールです。また、プロジェクト管理、特に依存性およびリリース管理にも利用されます。

JDeveloperを使用してビルドされたアプリケーションのビルド、テストおよびデプロイを、一貫性をもって自動的に行うことができます。これを使用すると、開発者は、Mavenを使用するプロジェクトでの作業時に、Mavenを使用する別のプロジェクトに容易に移動できるという利点を享受できます。以前にMavenを使用したことのある開発者の多くは、Mavenを使用する馴染みのないプロジェクトでも迅速にダウンロードし、ビルドして、デプロイすることができます。

Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトをビルドする際に、そのプロジェクトのPOMと、Mavenを使用するすべてのプロジェクトで共有される一連のプラグインを使用すると、統一されたビルド・システムが提供されます。Mavenライフサイクルは、アーティファクト(プロジェクト)をビルドして処理するためのプロセスで構成されます。各種Mavenビルド・ライフサイクルは次のとおりです。

  • デフォルト: プロジェクトのデプロイメント

  • クリーン: プロジェクトのクリーン

  • サイト: プロジェクト・サイトのドキュメント

各ビルド・ライフサイクルは、一連のビルド・フェーズで定義されます。各フェーズは、ライフサイクルのステージを表します。たとえば、デフォルトのビルド・ライフサイクルは、次のフェーズで構成できます。

  • 検証: プロジェクトが適切で、必要な情報がすべて入手可能であることを確認します。

  • コンパイル: プロジェクトのソース・コードをコンパイルします。

  • テスト: 適切なユニット・テスト・フレームワークを使用して、コンパイル済ソース・コードをテストします。

  • パッケージ: コンパイル済コードを取得し、配布可能な形式(JARなど)にパッケージ化します。

  • インストール: 他のプロジェクト内の依存性としてローカルに使用するために、パッケージをローカル・リポジトリにインストールします。

  • デプロイ: 他の開発者およびプロジェクトと共有するために、最終パッケージをリモート・リポジトリにコピーします。

同様に、各フェーズは一連のプラグイン・ゴール(タスク)で定義されます。これらは、フェーズがどのように遂行されるかを具体的に決定します。ゴールとフェーズは、呼び出された順序で連続して実行されます。JDeveloperを使用すると、フェーズとそのゴールを定義し、それらをPOMファイルのコンテキスト・メニューから起動できます。詳細は、第9.7.10項「POMファイルでのコンテキスト・メニューの使用」を参照してください。

Oracle Fusion Middlewareを使用してアプリケーションを開発する場合、Mavenを使用すると次の操作が可能になります。

  • プロジェクトをビルドします。

  • Oracleおよびサード・パーティのアーティファクトに対して依存性を管理します。

  • 内部または外部(パブリック)Mavenリポジトリからアーティファクトを自動的にダウンロードします。

Mavenの詳細は、http://maven.apache.org/index.htmlを参照してください。

9.7.1 リポジトリの理解

Mavenリポジトリは、アーティファクトのコレクションをホストしている共有可能な場所です。アーティファクトは、中央のパブリック・リポジトリまたはプライベート・リポジトリからプルできます。Mavenは、指定のパブリック・リポジトリまたはプライベート・リポジトリからアーティファクトを更新します。各アーティファクトは、ローカルのMavenリポジトリにビルド実行として入れられます。アーティファクトは、特定のディレクトリ構造で整理されています。これには、コンパイル済コード (JARファイル、WARファイル)と、そのコードに関するメタデータが含まれます。

次の2種類のリポジトリがあります。

  • ローカル・リポジトリ: ローカル・マシンに格納されるリモート・リポジトリのキャッシュ。Mavenプロジェクトは、ローカル・リポジトリに対してビルドされます。ローカル・リポジトリには通常、リモート・リポジトリで利用可能なファイルのサブセットと任意の一時ビルド・アーティファクトのみが格納されます。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。この場所にあるコンテンツは編集しないでください。

    Mavenゴールを実行してプロジェクトをビルドすると、必要なすべての依存性がアップストリーム・リポジトリからダウンロードされて、ユーザーのローカル・リポジトリに保存されます。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。

  • リモート・リポジトリ: Mavenのすべてのアーティファクトとプラグインを含むリポジトリ。リモート・リポジトリは、サード・パーティのリポジトリ(http://repo.maven.apache.org/など)、またはプライベート内部リポジトリになります。

JDeveloperはMavenリポジトリを管理し、通常はHTTPを通してユーザーがそれを利用できるようにします。また、その他の、通常は外部のMavenリポジトリのプロキシとして動作し(アーティファクトをキャッシュ)、ビルド時間を短縮したり、ネットワーク使用率を低減することもできます。つまり、Maven POMは、開発者が集中する製品のアーティファクト別に用意されます。したがって、該当するMavenリポジトリを指し示すようにMavenを構成することができます。

Maven同期ツールを使用すると、リポジトリの設定や移入が容易になります。同期ツールは、Oracle JDeveloperやOracle WebLogic Serverのインストールで入手可能なプラグインです。このプラグインを追加するには、第9.7.12項「リポジトリの移入」を参照してください。

9.7.2 Mavenプラグインの理解

プラグインを使用してMavenを拡張することができます。プラグインにより、レポート用またはビルド・プロセス用に他にも多数の開発ツールが使用できるようになります。プラグインにより、Mavenゴールの実行が可能になります。すべての作業はプラグインによって処理されます。次のように、多数のコア・プラグインがあります。

  • ビルド・プラグインはビルド時に実行するため、POMの<build/>要素に構成する必要があります。

  • レポート・プラグインはサイト生成時に実行するため、POMの<reporting/>要素に構成する必要があります。

利用可能なMavenプラグインのリストについては、http://maven.apache.org/plugins/index.htmlを参照してください。

9.7.3 依存性の理解

Maven依存性は、プロジェクトのビルドに必要なJARファイルが含まれているライブラリの指定に使用します。ローカル・リポジトリに存在しない依存性を使用してプロジェクトをビルドすると、Mavenでその依存性が検索され、ユーザーのローカル・リポジトリに追加されます。プロジェクトがMavenプロジェクトであり(つまり、POMファイルが関連付けられている)、依存性がプロジェクトに追加されている場合は、変更もPOMにコミットされます。

Mavenは、コンパイルおよび、依存性を必要とするその他のゴールに対する依存性をダウンロードして、リンクします。また、これらの依存性(推移依存性)の依存性を取り入れて、プロジェクトで必要とされる依存性のみにリストを集中させることができます。

依存性は、「依存性」タブでの選択とPOMファイルとの間で同期化されます。たとえば、プロジェクトの依存性がPOMにはなく、プロジェクトから別の依存性を追加した場合、Maven: 依存性ダイアログで「OK」をクリックすると、両方の依存性がPOMに追加されます。

POMファイルの依存性は、.jprプロジェクト、またはPOMファイルと関連する.jwsアプリケーションを使用して常に同期化されます。依存性(リポジトリの依存性を除く)も、「プロジェクト・プロパティ」ダイアログと「アプリケーション・プロパティ」ダイアログから追加できます。これらの依存性は、関連するPOMファイルと自動的に同期化されます。

9.7.4 プロジェクト・オブジェクト・モデルの理解

Mavenのプロジェクト・オブジェクト・モデル(POM)ファイルは、JDeveloperの.jprファイルと類似しています。POMは、Mavenがプロジェクトをビルドする際に使用するプロジェクトと構成の詳細に関する情報を含むXMLファイルです。プロジェクトのビルドに必要なほとんどの情報が、このXMLファイルに含まれています。POMで指定できる構成情報としては、プロジェクトの依存性、プラグイン、実行可能なゴール、ビルド・プロファイルなどがあります。

Mavenでは、プロジェクトの標準デフォルト動作を仮定することで「構成に対する規則」という概念が使用されます。たとえば、Javaアプリケーションの場合、Mavenはソース・コードの場所を${basedir}/src/main/javaと仮定するため、リソース・ファイルは.../main/resources内にあることが前提になります。次の規則の場合、Mavenは、最終的にJARが${basedir}/targetディレクトリに作成されると仮定します。この情報はすべてPOMにすでに含まれているため、すべてのパスを1つずつ構成する手間が省けます。Mavenコア・プラグインでは、ソース・コードのコンパイルやパッケージ化などのプロセスにも規則を採用しています。Mavenは、規則に従うことで、プロジェクトのビルドと管理に関する作業の大部分を実行できます。

次に、POMに含めることができる最小限のMaven座標を示します。

  • グループID: パッケージ名と類似するプロジェクトの一意の識別子(com.acme.corpなど)。

  • アーティファクトID: 拡張子のないJARの名前(MyProjectなど)。

  • バージョン: このプロジェクトにより生成されたアーティファクトの現在のバージョン(1.1.0など)。

「パッケージ化」は、POMの作成時に指定できるもう1つの座標です。「パッケージ化」を使用して、プロジェクトのアーティファクト・タイプを指定します(たとえば、プロジェクトをJARファイルまたはWARファイルでパッケージ化するように指定します)。「パッケージ化」の値を指定しない場合、MavenではデフォルトのタイプがJARであると仮定します。

Mavenプロジェクト・オブジェクト・モデルの詳細は、次のサイトを参照してください。http://maven.apache.org/index.html

9.7.5 設定ファイルの理解

settings.xmlファイルは、Mavenのメイン制御ファイルです。このファイルを使用して、ローカル・リポジトリ・パスの設定、代替リモート・リポジトリ・サーバーの設定、プロキシの設定などのMaven実行を構成します。ただし、POMファイルとは異なり、settings.xmlファイルは、明示的に変更されるまで、すべてのプロジェクトに対して共通の状態にしておく必要があります(推奨)。

settings.xmlファイルを構成するには:

  1. メイン・メニューから、「ツール」「プリファレンス」を選択します。

  2. カテゴリ・ツリーで、「Maven」「設定」を選択します。

  3. 必要なコマンド行オプションを選択します。

設定ファイルの詳細は、http://maven.apache.org/settings.htmlを参照してください。

9.7.6 POMファイルの選択

Mavenを使用してアプリケーションの作成と管理を行う場合、POMがアプリケーション・レベルでアプリケーション内のプロジェクトごとに作成されます。POMファイルは、アプリケーションと各プロジェクトで使用するように指定できます。プロジェクトに対してPOMファイルを選択すると、.jprのパスと依存性が自動的に同期化します。


注意:

通常は、アプリケーションやプロジェクトの作成ウィザードでMavenをビルド・ツールとして選択する際、アプリケーションやプロジェクトの作成時にPOMファイルが設定されるため、そのファイルを明示的に設定する必要はありません。ギャラリから、アプリケーションやプロジェクトに対してPOMを作成するように選択した場合もPOMファイルが設定されます。

アプリケーションのPOMファイルを設定するには:

  1. 「アプリケーション」ウィンドウでアプリケーションを右クリックし、「アプリケーション・プロパティ」を選択します。

  2. カテゴリ・ツリーで、「Maven」を選択します。

    このアプリケーションに対してMavenを初めて選択した場合は、「拡張機能のロード」をクリックします。

  3. 「参照」ボタンをクリックして、必要なPOMファイルを選択します。

プロジェクトのPOMファイルを設定するには:

  1. 「プロジェクト」ウィンドウでプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。

  2. カテゴリ・ツリーで、「Maven」を選択します。

  3. 「参照」ボタンをクリックして、必要なPOMファイルを選択します。

9.7.7 Mavenのインストール

JDeveloperで提供されるMavenは、ORACLE_HOME/oracle_common/modulesディレクトリにあります。Mavenをサーバーにインストールする場合、『継続的インテグレーションによるアプリケーションの開発』を参照してください。

9.7.8 始める前に

Mavenを使用するには、まずアプリケーションを作成し、その後でアプリケーション内の少なくとも1つのプロジェクトに対してオプションを選択します。

「新規ギャラリ」を使用すると、アプリケーションとそのすべてのプロジェクトに対してPOMファイルを生成できます。これによって、アプリケーション、アプリケーションの最上位プロジェクト・オブジェクト・モデル・ファイル(pom.xml)、およびプロジェクトごとのデフォルトのpom.xmlファイルが生成されます。

Mavenアプリケーションとプロジェクトを作成して使用する手順は次のとおりです。

  1. メイン・メニューから、「ファイル」「新規」「ギャラリから」「Maven」「アプリケーションPOM」を選択します。

  2. ダイアログの手順に従って、Mavenテクノロジで使用するために構成されるアプリケーションの作成オプションを指定します。

  3. ウィザードで(必須)とマークされたオプションを入力したことを確認します。

    • グループID

    • アーティファクトID

    • バージョン

  4. ウィザードを終了すると、1つのMavenプロジェクトを示した「アプリケーション」ウィンドウが表示されます。


    注意:

    また、別のタイプのアプリケーション、たとえばカスタム・アプリケーションを作成し、「新規ギャラリ」を使用してそれに既存のMavenをインポートすることもできます。

  5. 「アプリケーション」ウィンドウで、プロジェクト・ノードとその「リソース」ノードを開きます。

  6. POMファイルをダブルクリックして開きます。

    デフォルトでは、POMファイルの名前は「pom.xml」です。これは通常、「アプリケーション」ウィンドウの「プロジェクト」→「リソース」にあります。

  7. 「概要」タブで、「リポジトリ」をクリックします。

  8. 「ローカル・リポジトリ」フィールドで、赤の下線をチェックします。

    赤の下線は、現在指し示しているディレクトリが無効であることを示します。有効なディレクトリに対しては表示されません。

    このフィールドには、ローカルMavenリポジトリの場所が表示されます。このリポジトリには、プロジェクトで必要になる可能性のあるすべてのアーティファクトと依存性のローカル・コピーが保持されています。

    デフォルトでは、ローカル・リポジトリの場所は「USER_HOME/.m2/repository」です。ローカル・リポジトリの場所に赤の下線が引かれている場合、その場所は無効です。ファイル・エクスプローラ、または「ローカル・リポジトリ」フィールドの横の参照アイコンを使用して、ディレクトリを作成します。有効なディレクトリが選択されると、赤の下線が消えます。

    ローカル・リポジトリは、明示的に変更されないかぎり、すべてのプロジェクトに共通です(推奨)。

  9. 「ファイル」「保存」を選択して、すべての変更を保存します。

  10. メイン・メニューから、「ツール」「プリファレンス」「Maven」「設定」を選択します。

  11. オプションで、「ユーザー設定」フィールドのパスを変更します。

    Mavenアプリケーションの作成時には、デフォルトにより、settings.xmlというファイルもUSER_HOME/.m2/に作成されます。

  12. 「OK」をクリックします。

  13. メイン・メニューから、「ツール」「プリファレンス」「Webブラウザとプロキシ」を選択します。

    デフォルトでは、settings.xmlにはアクティブなプロキシ情報が含まれていませんが、JDeveloperのプロキシ設定は有効になっています。

  14. 「プロキシ設定」タブをクリックして、「システムのデフォルト・プロキシ設定の使用」または「手動プロキシ設定」のいずれかを選択します。

    Mavenでは、リモート・リポジトリからのアーティファクトのダウンロードにプロキシが使用されます。

  15. 終了したら「OK」をクリックします。

9.7.9 Maven POMファイルの作成方法

Maven対応アプリケーションにプロジェクトを作成する場合、POMファイルをプロジェクトに追加できます。

POMを作成するには、次のようにします。

  1. 「アプリケーション」ウィンドウで、POMを検索するプロジェクトまたはファイルを選択します。

  2. 「ファイル」「新規」「ギャラリから」を選択し、「新規ギャラリ」を開きます。

  3. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

  4. 「項目」リストで、「プロジェクトのMaven POM」を選択します。

  5. 「OK」をクリックします。

  6. ダイアログで必須オプションと任意オプションを必要に応じて変更します。

  7. 「OK」をクリックします。

    POMファイルがプロジェクトの「リソース」ノードの下に作成され、そのファイルが、デフォルトで概要エディタで開きます。

9.7.10 POMファイルでのコンテキスト・メニューの使用

「Mavenゴール・プロファイルの実行」プロファイルやMavenフェーズの実行フェーズなどのコマンド・メニューにアクセスするには、「アプリケーション」ウィンドウでpom.xmlファイルを右クリックするか、POMファイルが開いている場合は「概要」タブまたは「ソース」タブでpom.xmlを右クリックします。

ゴール・プロファイルを作成して管理するには、ライフサイクル・フェーズに含めるフェーズまたはゴールを指定します。

ゴール・プロファイルを作成または管理するには:

  1. POMファイルを右クリックします。

  2. 「ゴール・プロファイルの管理」を選択します。

  3. 「Maven: フェーズ/ゴール」プリファレンス・ページで、必要なゴール・プロファイルを選択します(またはプラス・アイコンをクリックして新しいプロファイルを作成します)。

  4. 必要なライフサイクル・フェーズを選択し、右矢印をクリックして、そのフェーズを「選択したフェーズ/ゴール」列に移動します。

    [Shift]キーを押しながら、一度に複数のフェーズを選択して移動します。

  5. 「OK」をクリックします。

フェーズおよびゴールのリストをカスタマイズするには、「選択したフェーズ/ゴール」リストからゴールを追加または削除します。たとえば、Mavenアプリケーションをアンデプロイできるようにする場合は、ローカル・リポジトリで利用可能なweblogic-maven-pluginからアンデプロイ・ゴールを追加できます。

ゴールを追加するには:

  1. 「選択したフェーズ/ゴール」パネルでプラス(+)記号をクリックします。

  2. 追加する特定のゴールを含むプラグイン・ノードを見つけて開きます。

  3. 必要なゴールを選択します([Shift]キーを押しながら複数のゴールを順に選択するか、[Ctrl]キーを押して隣接してないゴールを選択します)。

  4. 「OK」をクリックします。

必要なゴールをローカル・リポジトリで利用できない場合、「リモート・プラグイン・リポジトリからダウンロード」をクリックして、ゴールの名前とプラグイン・バージョンを指定し、そのプラグインを含むリモート・リポジトリを選択します。リモート・リポジトリにアクセスできるかどうかを確認するには、「プラグインの検証」をクリックします。

コマンド行からのMavenゴールの実行の詳細は、『継続的インテグレーションによるアプリケーションの開発』のOracle Maven同期プラグインの実行に関する項を参照してください。

Mavenのフェーズとゴールの詳細は、http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html">>://///を参照してください。

9.7.11 リモート・リポジトリの指定方法と管理方法

様々な理由でリモート・リポジトリにアクセスする必要があります。たとえば、プロジェクトで様々な外部ベンダーの依存性を使用する場合があります。これらの依存性は、異なるリモート・リポジトリで使用可能です。JDeveloperでは、リモート・リポジトリでのアーティファクトの構成と検索を行うことができます。

リモート・リポジトリを管理するには、メイン・メニューから「ツール」「プリファレンス」を使用するか、プロジェクトのPOMファイルを使用します。「プリファレンス」ダイアログでリモート・リポジトリを追加する場合、settings.xmlファイルにリポジトリを追加して、そのリポジトリをアプリケーションのすべてのプロジェクトで利用できるようにします。プロジェクトのPOMファイルにリモート・リポジトリを追加する場合、それは該当プロジェクトでのみ利用できます。

「ツール」→「プリファレンス」からリモート・リポジトリを追加して管理するには:

  1. 「メイン・メニュー」から、「ツール」「プリファレンス」「Maven」「リポジトリ」を選択します。

  2. 「リモート・リポジトリ」表で、「追加」(+)アイコンをクリックします。

    表に新しい行が追加されます。

  3. 新しい行を選択します。

  4. 「Maven - リポジトリ」ページの「リポジトリの詳細」セクションで、リモート・リポジトリのURL (例: http://repo1.maven.org./maven2)を入力します。

  5. 「索引更新URL」フィールドに、nexus-maven-repository-index.zipおよびnexus-maven-repository-index.propertiesのダウンロード元であるベースの場所を入力します。

    リポジトリ内でアーティファクトを検索する索引場所を指定して、実際にそれをダウンロードしなくてよいようにする必要があります。


    注意:

    「テスト」ボタンをクリックすると、リポジトリとその索引データにアクセス可能かどうかをチェックすることができます。

  6. 「設定.XMLに含める」を選択して、リポジトリをsettings.xmlファイルに追加します。

  7. 「リモート・リポジトリ」表で新しいリポジトリ用のチェック・ボックスを選択します。

  8. 選択されたリポジトリの索引付けアイコン(「リポジトリの削除」アイコンの右にある)をクリックします。

    これで、選択したリモート・リポジトリの索引データがダウンロードされます。

POMファイルからリモート・リポジトリを追加して管理するには:

  1. 「アプリケーション」ウィンドウで、Mavenプロジェクトのpom.xmlファイルをダブルクリックします。POMファイルの詳細がIDEに表示されます。デフォルトでは、「一般」タブが開きます。

  2. 「リポジトリ」タブをクリックします。

  3. 「リモート・リポジトリ」表で、「追加」(+)アイコンをクリックします。

    表に新しい行が追加されます。または、「追加」アイコンの横のドロップダウン・リストを開き、「リポジトリの追加」を選択して新しい行を追加できます。

    あるいは、「プリファレンスからの追加」を選択して、リモート・リポジトリのリストからリモート・リポジトリを追加できます。目的のリポジトリを選択し、「OK」をクリックして、そのリポジトリをリモート・リポジトリのリストに追加します。

  4. 新しいリポジトリの名前、IDおよびURLを入力します。

  5. 「リポジトリ」を選択して、POMファイルの「リポジトリ」セクションにこのリポジトリを含めます。

  6. 「プラグイン・リポジトリ」を選択して、POMファイルの「プラグイン・リポジトリ」セクションにこのリポジトリを含めます。

    新しいリモート・リポジトリを入力する場合、「プリファレンスへの追加」をクリックして、選択したリポジトリを「プリファレンス」リストに追加できます。

追加後は、選択したリポジトリの次の詳細を指定できます。

  • レイアウト: リポジトリのディレクトリ構造がレガシー(Maven 1)とデフォルト(Maven 2)のどちらであるか。これらのレイアウトは、ディレクトリ構造、デフォルト・スナップショットのタイムスタンプ、デフォルト・メタデータ・ファイルの存在の有無の点で異なります。

  • リリースは検索しません: Mavenがリリース・バージョンを検索するかどうか。

  • スナップショットは検索しません: スナップショット・リリースに依存するかどうか。アーティファクトのスナップショット・バージョンに依存するアーティファクトのリリースまたはデプロイはお薦めしません。

  • 更新ポリシー: Mavenが、リリース・バージョンとスナップショットの検索時にリポジトリの更新をどのように検索するか(常時、毎日、間隔、実行しない)。

  • チェックサム・ポリシー: リリース・バージョンとスナップショットの検索時にどのチェックサム・ポリシー(警告、失敗または無視)を使用するか。

9.7.12 リポジトリの移入

Mavenプロジェクトを作成する場合、IDEは最新のアーティファクトをローカル・リポジトリにダウンロードします。典型的な開発シナリオでは、これらの依存性は共有リポジトリからダウンロードされますが、JDeveloperでは、IDEライブラリ定義からローカル・リポジトリを移入することもできます。

コンパイル時にアプリケーションが依存するアーティファクトを含んだ共有リポジトリは、開発チームが管理することをお薦めします。チーム開発で使用するJDeveloperおよびADFライブラリを含んだ共有リポジトリを移入するには、Maven同期プラグイン(同期ツールとも呼ばれる)を使用できます。

Maven同期プラグインにより、ローカル・リポジトリまたは共有リポジトリがORACLE_HOMEディレクトリから移入されます。プラグインは、JDeveloperとともに入手可能です。同期プラグインは、次の2つのコンポーネントで構成されます。

  • oracle-maven-sync-version.pom: プラグインを記述します。version値は、Maven同期POMファイルのバージョンです(oracle-maven-sync.12.1.3.0.0.pomなど)。

  • oracle-maven-sync-version.jar: プラグインが含まれます。version値は、Maven同期JARファイルのバージョンです(oracle-maven-sync.12.1.3.0.0.jarなど)。

どちらのコンポーネントもORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/versionにあります。

同期プラグインはORACLE_HOME内のすべてのMavenアーティファクトを調べて、すべてのアーティファクトが指定のリポジトリにインストールされていること、およびバージョンが完全に一致していることを確認します。つまり、バージョン番号とファイルは、バイナリ・レベルで同一であり、パッチ適用済のすべてのファイルがMavenリポジトリに正確に反映されます。これは、デプロイメントを正常に行うために不可欠です。

プラグイン同様、MavenアーティファクトはORACLE_HOME/maven/artifactにインストールされています。

Maven同期プラグインを共有リポジトリで実行するには:

  1. Maven同期プラグインをインストールします:

    mvn install:install-file -DpomFile=/oracle-maven-sync.version.pom -Dfile=oracle-maven-sync.version.jar

  2. 同期ツールを実行して、共有リポジトリを移入します:

    mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=ORACLE_HOME -Dmaven.repo.local=/alt_path


注意:

Mavenプロジェクトのテストとプロトタイプ作成が初めて行われる場合、JDeveloperはローカル・リポジトリを移入しますが、これはお薦めしません。

Maven同期プラグインのインストールと実行の詳細は、『継続的インテグレーションによるアプリケーションの開発』のMavenリポジトリ・マネージャの移入に関する項を参照してください。

リポジトリを移入したら、ADF oracle-adffaces-ejb Archetypeなどの様々なArchetypeを利用できます。このArchetypeにより、ModelプロジェクトやViewControllerプロジェクトを使用してFusion Webアプリケーションの基本テンプレートが提供されます。このArchetypeを使用してアプリケーションを作成する場合、次の3つのPOMファイルが生成されます。

  • EJBプロジェクトのPOM

  • WAR (JSF)プロジェクトのPOM

  • EJBプロジェクトとWARプロジェクトをパッケージ化するEARを定義するPOM

プロジェクトのPOMファイルには、ojmakeプラグインとojdeployプラグインが含まれます。どちらのプロジェクトのPOMも親POMを指し示します。親POMは親プロジェクトのことで、これ以外のプロジェクトはここから依存性、プラグイン、プラグイン構成、リポジトリなどを継承します。

Maven Archetypeを使用したアプリケーションの作成の詳細は、第9.7.14項「Maven Archetypeを使用したMavenプロジェクトの作成方法」を参照してください。

9.7.12.1 POMファイルとプロジェクト・ファイルの同期

Maven対応プロジェクトでは、プロジェクトのソース・パスまたはクラスパスを更新する場合、JDeveloperは、変更をPOMファイルに同期します。たとえば、「プロジェクト・プロパティ」ダイアログの「ライブラリとクラスパス」パネルに移動してJARファイルを追加する場合、JDeveloperは、そのJARファイルのPOMを作成し、それをローカル・リポジトリにロードして、<dependency>要素をプロジェクトのPOMファイルに追加します。同様に、プロジェクトの依存性をPOMソース・ファイルに追加する場合、JDeveloperは、そのアーティファクトをプロジェクト・ファイル(.jpr)に追加します。

9.7.13 アプリケーション作成時にデフォルトのMaven構造に合わせる方法

Mavenアプリケーションを新しく作成する際、デフォルトのMaven構造に合わせることができます。

デフォルトのMaven構造を変更する手順は次のとおりです。

  1. 「ファイル」「新規」「ギャラリから」を選択し、「新規ギャラリ」を開きます。

  2. 「カテゴリ」リストで「一般」を開き、「アプリケーション」を選択します。

  3. 「カスタム・アプリケーション」を選択し、「OK」を選択します。

  4. デフォルトのオプションを選択して、「次へ」をクリックします。

  5. 「プロジェクトの機能」タブで、「Maven」にスクロール・ダウンします。

  6. シャッフル・アイコンをクリックして、「Maven」「プロジェクトの機能」タブの「選択済」列まで移動します。

  7. 「次へ」をクリックします。

  8. 「デフォルトのMaven構造に合わせて標準プロジェクト構造を変更」チェック・ボックスを選択します。

    デフォルトでは、これが選択されます。

  9. 「終了」をクリックして、カスタム・アプリケーションを作成します。

9.7.14 Maven Archetypeを使用したMavenプロジェクトの作成方法

Archetypeは、Mavenを使用してアプリケーションをすばやく作成するためのテンプレートに類似しています。Archetypeは、Mavenプロジェクトを生成するための一貫した手段となります。詳細は、http://maven.apache.org/guides/にアクセスして、「What is an Archetype」および「Creating Archetypes」の各リンクを参照してください。

Archetypeを使用してMaven対応J2EEアプリケーションを作成するには:

  1. 「ファイル」「新規」「ギャラリから」を選択します。

  2. 「カテゴリ」リストで、「一般」を開いて「Maven」「Archetypeからの生成」を選択します。

  3. 「Archetypeからのプロジェクトの作成」ダイアログで、Archetypeページを選択して、新規プロジェクトのオプションを入力します。ダイアログで(必須)とマークされたオプションを入力したことを確認します。

  4. 「Maven Archetype」フィールドの横の参照アイコンをクリックします。

  5. 「Archetypesの検索」ダイアログの検索フィールドに、使用するArchetypeを検索するための検索テキストとフィルタを入力します。

    たとえば、検索テキストとしてj2eeを入力して、maven-archetype-j2ee-simpleというArchetypeを検索することができます。また、検索を特定のリポジトリに絞り込むように選択することもできます。


    注意:

    使用可能なリポジトリのリストは、「Maven」 - 「リポジトリ」ページで設定されます。詳細は、第9.7.11項「リモート・リポジトリの指定方法と管理方法」を参照してください。

    リモート・リポジトリにアクセスするには、「Webブラウザとプロキシ」ダイアログでプロキシ情報が指定されていることを確認します。詳細は、第20.2.1項「プロキシ設定およびJDeveloperの使用方法」を参照してください。


  6. 検索するリポジトリを「リポジトリ」パネルで選択します。

  7. [Return]キーを押します。

    「一致するArchetype」リストに、検索基準を満たすすべてのArchetypeが表示されます。

  8. リスト内のArchetype(たとえば、maven-archetype-j2ee-simple)にドリルダウンして、それを選択します。

  9. 「OK」をクリックします。

    Archetypeのソースが、「Archetypeの選択」ページの「Maven Archetype」フィールドに表示されます。

  10. 「次へ」をクリックします。

  11. パラメータの値を必要に応じて変更するには、選択したパラメータの「パラメータ値」列をダブルクリックして新しい値を入力します。

  12. 「終了」をクリックします。

    新規MavenアプリケーションがArchetypeから作成されます。これは、図9-1に示すように、「アプリケーション」ウィンドウに表示されます。

    図9-1 「アプリケーション」ウィンドウのMavenアプリケーション

    この図は周囲のテキストで説明しています

Archetypeを使用してMavenプロジェクトを作成する場合、2種類のソース・コードが生成されます。src/mainsrc/testが生成されます。プロジェクトのソース・コードとリソースはsrc/mainに配置されますが、プロジェクトのテスト・ケースはsrc/testに配置されます。JUnitテストやTestNGテストなどのJavaクラスは、テストのクラスパス・リソースとともにこのディレクトリにあります。


注意:

「新規ギャラリ」「一般」「Maven」「Mavenプロジェクトのインポート」を選択して、既存のMavenプロジェクトをJDeveloperにインポートすることもできます。これにより、インポートされたMavenソースのコンテンツに基づいてMavenアプリケーションと関連のプロジェクトが作成されます。

9.7.15 新規Mavenアプリケーション作成時の処理内容

図9-1に示すアプリケーションには、多数のMavenプロジェクトが含まれています。

  1. 「アプリケーション」ウィンドウで、作成したMavenアプリケーションの下のejbsプロジェクトまでスクロールします。

  2. ejbsを開き、さらに「リソース」を開きます。

  3. プロジェクト・ファイルをダブルクリックします。デフォルトでは、これは「pom.xml」です。エディタが開きます。

  4. 「依存性」タブをクリックします。

  5. 「依存性」タブの依存性、たとえば図9-2に示す依存性に注目してください。

    図9-2 Mavenの依存性

    この図は周囲のテキストで説明しています
  6. 「メイン・ツールバー」から、「プロジェクト」「プロジェクト・プロパティ」「ライブラリとクラスパス」を選択します。

  7. 図9-2と同じ2つの依存性がここに表示されていることに注目してください。

    依存性は、アプリケーションやプロジェクトとそれに関連するプロジェクトPOMファイルとの間で同期化されています。アプリケーションやプロジェクトまたはPOMファイルに新しい依存性を追加して、同期プロセスを観察します。JDeveloperビルド・ツールとMavenの両方を使用して、アプリケーションやプロジェクトを管理するには同期化が必要です。

  8. 「プロジェクト・プロパティ」ダイアログで、「Maven」をクリックします。

    このPOMファイルは、プロジェクトのデフォルトPOMとして設定されています。

9.7.16 POMファイルに対するMavenゴールの実行方法

Mavenは、ビルド・ライフサイクルの概念に基づいています。ビルド・ライフサイクルは、ビルド・フェーズで構成されます。ここでは、フェーズは、ライフサイクルのステージを表すプラグイン・ゴールで構成されます。Mavenには、プロジェクトの管理に使用されるクリーン、コンパイル、ビルド、パッケージなど、デフォルトのゴールがいくつか用意されています。すべてのプロジェクトでは、フェーズ内にゴールが含まれている同じコア・フェーズを実行します。

Mavenゴールを実行する手順は次のとおりです。

  1. 「メイン・メニュー」から、「ツール」「プリファレンス」「Maven」「フェーズ/ゴール」を選択します。

    また、「概要」タブまたは「ソース」タブのPOMファイルを右クリックして、「ゴール・プロファイルの管理」を選択することもできます。

  2. オプションで、将来使用するために保存できるゴールのコレクションであるプロファイルを設定するには、「ゴール・プロファイル」フィールドの横のプラス(+)アイコンをクリックします。

    • 「ゴール・プロファイル」フィールドにプロファイルの名前を入力して、「OK」をクリックします。

  3. 「使用可能なライフサイクル・フェーズ」リストで、1つ以上のゴールを選択します。


    注意:

    これをはじめて試行する場合は、このリストにデフォルトのゴール・セットが含まれていることを確認してください。

  4. シャトル・ボタンをクリックして、選択内容を「選択したフェーズ/ゴール」リストに追加します。

  5. 「OK」をクリックします。

  6. 「アプリケーション」ウィンドウで、実行する必要のあるプロジェクトのPOMファイルにスクロール・ダウンします。

  7. 右クリックして、「Mavenフェーズ"compile"の実行」を選択します。

    これによって、コンパイル・ゴールの実行に必要なアーティファクトがリモート・セントラル・リポジトリからローカル・リポジトリに自動的にダウンロードされます。これは1回かぎりのプロセスです。これらのアーティファクトがローカル・リポジトリにコピーされたら、今後ダウンロードする必要はありません。

    ダウンロード後に、コンパイル・ゴールが実行されます。プロジェクトとその中に含まれているJavaクラスは、Mavenを使用してコンパイルされます。


    注意:

    依存性またはアーティファクトの解決時にMavenでエラーが報告された場合は、「リポジトリ」ページを使用してリポジトリをPOMファイルに追加してから、再度試みてください。URLが指し示しているリポジトリが稼働中であり、アクセス可能であることを確認します。

9.7.17 プロジェクトからMaven POMを作成する方法

「アプリケーション」ウィンドウで選択した既存のプロジェクトに基づいて、Maven POMを作成できます。複数のソース・ディレクトリについてビルド要素が追加されます。プロジェクトに対して指定したJavaコンパイラに関する設定が追加されます。

プロジェクトのMaven POMを作成する手順は次のとおりです。

  1. 「アプリケーション」ウィンドウで、POMを作成するためのプロジェクトを選択します。

  2. 「ファイル」「新規」を選択し、「新規ギャラリ」を開きます。

  3. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

  4. 「プロジェクトのMaven POM」を選択します。

  5. ダイアログを完了した後で、「OK」をクリックします。

9.7.18 Mavenアプリケーションの監査

pom.xmlを編集している間、ビルドの実行時に空のタグや無効な値によってエラーが生じることがあります。このようなエラーは、監査の一環として捕捉して報告する必要があります。監査では、pom.xmlに対してMavenプロジェクトを作成しているときに報告されたエラーをすべて処理する必要があります。

検証の例を次に示します。

  • 継承後にアーティファクトID、グループID、従属性バージョン、プラグインなどの無効な値/空の値が適用されます。

  • プロファイル・アクティブ化ルールのエントリが重複しています。

9.7.19 テスト設定の構成

Mavenがアプリケーションでテスト・リソースをどのように検出するかを指定できます。POMファイルをダブルクリックして、「概要」タブで「テスト設定」を選択します。アプリケーションのテスト・ソースとリソース・パスを手動で構成できます。「テスト設定」タブで、テスト目的のプロジェクトを指定するか、JDeveloperをテスト・リソースに指定できます。

テスト用に個別のプロジェクトがある場合、JDeveloperは、様々なテスト・アーティファクトのパスを検出できます。テスト・リソースが、他のソースやアーティファクトを含むプロジェクト内にある場合、それらを明示的に選択する必要があります。

テスト設定には、次の2つの構成方法があります。

  • テスト・ソースやテスト・リソースを含む専用のJDeveloperプロジェクト(JUnitテスト・プロジェクト)がすでにある場合、それを「テスト設定」タブで使用します。

  • テスト・プロジェクトの「プロジェクト・プロパティ」ダイアログからテスト・パスを構成することもできます。テスト・プロジェクトのソースとリソースは、関連付けられたPOMファイルに自動的に同期されます。

9.7.20 コード・インサイトの理解

コード・インサイトを使用すると、pom.xmlソース・ファイルでのコード作成プロセスにかかる時間を短縮できます。

コード・インサイトを確認する手順は次のとおりです。

  1. コード・エディタでpom.xmlファイルを開きます。

  2. 「プラグイン」タブで、プラグイン要素を追加します。

  3. プラグインの<executions>セクションを追加します。

コード・インサイトのサポートは、ローカル・リポジトリからフェッチされる「概要」タブの値に基づいています。たとえば、パッケージ・タイプの場合、コード・インサイトは「パッケージ・タイプ」の「概要エディタ」に表示される値リストを表示します。

次のコード・インサイトの値リストもサポートされています。

  • フェーズ、プラグインの中

  • 更新ポリシー、チェックサム・ポリシーおよびレイアウト

  • タイプおよびスコープ、依存性の中

9.7.21 JDeveloperでのWebLogic Mavenプラグインの使用方法

プラグインを使用すると、Mavenを使用してビルドされたアプリケーションをMaven環境内からWebLogic Serverにデプロイ、再デプロイして、更新することができます。アプリケーションのアンデプロイも可能です。詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の「デプロイメントでのWebLogic Mavenプラグインの使用」を参照してください。

9.7.22 ojdeployおよびojmakeの使用方法

JDeveloperでは、Antスクリプトによるデプロイメントをサポートしています。デプロイ・ターゲットをbuild.xmlファイルに追加すると、このサポートが有効になります。詳細は、第21.8.4項「Antを使用したコマンドラインからのデプロイ方法」

Maven POMファイルでは、ojmakeと同様にojdeployも使用できます。JDeveloperでは、例9-2に示すように、POMファイルが変更され、必要に応じてojdeployおよびojmakeのデプロイメント・プラグインが追加されます。

例9-2 ojmakeおよびojdeployのデプロイメント・プラグイン

<build>
  <plugins>
    <plugin>
        <groupId>com.oracle.adf.plugin</groupId>
        <artifactId>ojmake</artifactId>
        <version>12.1.3-0-0</version>
        <configuration>
          <ojmake>
            ${oracleHome}/jdeveloper/jdev/bin/ojmake
          </ojmake>
          <files>
            ${basedir}/Application2.jws
          </files>
          <usemaven>
            true
          </usemaven>
        </configuration>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin> 
    <plugin>
      <groupId>oracle.jdeveloper.deploy.maven</groupId>
      <artifactId>maven-ojdeploy-plugin</artifactId>
      <version>1.0.0</version>
      <configuration>
        <ojdeploy>/scratch/jdoe/view_storage/pmed_jdev_l/oracle/jdeveloper/
jdev/bin/ojdeploy</ojdeploy> <workspace>/home/jdoe/jdeveloper/mywork/Application1/Application1.jws
</workspace> <project>ViewController</project> <profile>Application1_ViewController_webapp</profile> <usemaven/> </configuration> <executions> <execution> <phase>install</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

JDeveloperには、ojmakeプラグインとojdeployプラグインが用意されています。これらのプラグインを追加すると、JDeveloperで次の操作が可能になります。

  • Mavenビルド・ツールでのojmakeコマンドとojdeployコマンドの使用

  • POM作成時のプラグインの構成

  • プロジェクトへのデプロイメント・プロファイルの追加時におけるPOMでのプラグインの構成(まだ存在しない場合)

プラグインを追加するには、プロジェクトのPOMファイルをダブルクリックして、「プラグイン」タブをクリックします。「ビルド」列でojmakeプラグインとojdeployプラグインを選択し、「構成」セクションでパラメータを必要に応じて構成します。

ojmakeの使用方法、パラメータ、オプション、および例を参照するには、jdeveloper_install/jdeveloper/jdev/binのコマンドラインでojmakeと入力します。

ojdeployの詳細は、第21.8項「コマンドラインからのデプロイ」を参照してください。

9.8 連続配信と連続統合の理解

連続配信とは、ソフトウェアのビルド・プロセスから実際の配信にまでわたる方法の機能拡張の1つです。連続配信では、連続統合の終了時点から始まり、ソフトウェアのリリース管理とエンド・ユーザーへのデプロイの自動化、ソフトウェアのビルドとテストの自動化のためのステップが実行されます。この目的は、ユーザーが要件を表明して、その要件に対応できる製品が配信されるまでの時間を最小化することです。これによって、大規模ソフトウェアのデプロイメント・プロジェクトによく見られる問題が回避されます。

連続統合とは、品質管理をわずかな労力で頻繁に実行することによって品質の向上とソフトウェア配信時間の短縮を図るためのソフトウェア・エンジニアリング方法の1つです。この特徴的な手法は次のとおりです。

  • バージョン管理システムの使用

  • 開発者が毎日、メインのコードラインにコミットすること

  • 製品がすべてのコミットに対してビルドされること

  • ビルドは自動化され、高速に処理されること

  • 本番に似た環境に自動的にデプロイされること

  • 自動テストを採用すること

  • ビルド違反者が誰でも確認できるように、すべてのビルドの結果が公開されること

  • 配信可能なものを開発者、テスター、その他のステークホルダーが容易に利用できること

連続配信と連続統合の詳細は、『継続的インテグレーションによるアプリケーションの開発』を参照してください。