JDeveloperでは、メイク操作および再ビルド操作、Apache Ant、Apache Mavenなど、プロジェクトのビルドとコンパイルに複数の方法がサポートされています。
「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルをコンパイルします。「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。
Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。プロジェクトをビルドするには、XMLで作成されたAntビルドファイルを使用します。各ビルドファイルには、1つのプロジェクトと少なくとも1つ(デフォルト)のターゲットが含まれています。
MavenサポートはAntサポートと非常によく似ています。WebLogic Mavenプラグインを使用すると、JavaプロジェクトをWebLogicサーバーにデプロイするMavenスクリプトを作成できます。
この章には次の項が含まれます:
JDeveloperは、ソース・ファイルを無条件でコンパイルする再ビルド操作をサポートしています。最後にコンパイルされてから変更されたソース・ファイル、または変更された依存性のあるソース・ファイルをコンパイルするには、メイク・コマンドを使用します。「プロジェクト・プロパティ」ダイアログでオプションを設定すると、コンパイルするプロジェクトごとにJavaコンパイラを構成できます。
Antには、アプリケーションをビルドするもう1つの方法があります。AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。AntはJDeveloperに統合されています。XMLソース・エディタを使用して、12cアプリケーションおよびプロジェクト向けAntビルドファイルの追加または作成を行ったり、それらを編集したりすることができます。
Maven 12c統合プロジェクトでは、一貫性があり、自動ビルド、テスト、およびデプロイを行うプロセスがプロジェクト用に使用できます。Mavenを使用して、プロジェクトのビルド、Oracleおよびサード・パーティのアーティファクトでの依存性管理、内部または外部(パブリック) Mavenリポジトリの自動ダウンロードを実行できます。
表12-1に示すメイク・コマンドと再ビルド・コマンドは、JDeveloperでプロジェクトをコンパイルするための標準操作を実行します。
表12-1 メイク・コマンドおよび再ビルド・コマンド
コマンド | 説明 |
---|---|
|
プロジェクトが依存しているすべてのプロジェクトを(再帰的に)メイクしてから、プロジェクトをメイクします。 |
|
プロジェクトをメイクしますが、そのプロジェクトが依存するプロジェクトはメイクされません。 |
|
ワーキング・セットにあるすべてのプロジェクトをメイクします。 |
|
プロジェクトが依存しているすべてのプロジェクトを(再帰的に)再ビルドしてから、プロジェクトを再ビルドします。 |
|
プロジェクトを再ビルドしますが、そのプロジェクトが依存するプロジェクトは再ビルドされません。 |
|
ワーキング・セットにあるすべてのプロジェクトを再ビルドします。 |
|
すべてのプロジェクトをメイクします。 |
|
すべてのプロジェクトをクリーンします。 |
|
プロジェクトが依存しているすべてのプロジェクトを(再帰的に)クリーンしてから、プロジェクトをメイクします。 |
「プリファレンス」ダイアログの「コンパイラ」ページでコンパイラ・オプションを設定できます。
デプロイメント設定を構成するには、次の手順を実行します。
メイン・メニューから「ツール」→「プリファレンス」を選択します。
「コンパイラ」ノードを選択します。必要に応じて、コンパイラ・オプションを構成します。詳細は、「ヘルプ」をクリックしてください。
「OK」をクリックします。
「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトおよびワークスペースなどのコンテナに対してメイクを起動できます。
より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。
現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。
このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。
ソース・ファイルをメイクするには、次のいずれかを実行します。
ファイルのソース・エディタで右クリックして、「メイク」を選択します。
「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、ツールバーの「メイク」をクリックします。
「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、「ビルド」メニューから項目「メイク」を選択します。
「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択し、右クリックして、「メイク」を選択します。
「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。変更されたソース・ファイルまたは依存性が変更されたソース・ファイルのみを再コンパイルする「メイク」操作とは異なり、「再ビルド」操作には、条件はありません。
より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。
現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。
ソース・ファイルを再ビルドするには、次のいずれかを実行します。
「アプリケーション」ウィンドウでソース・ファイルを1つ以上選択し、「再ビルド」(ファイルが1つの場合)、または「選択されたものを再ビルド」(ファイルが複数の場合)をクリックします。
「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、ツールバーで「再ビルド」をクリックします。
「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「ビルド」メニューから項目「再ビルド」を選択します。
「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「再ビルド」を選択します。
JDeveloperでは、ビルド時に依存性を分析することにより、コンパイルを高速かつ完全に行うことができます。依存性チェックにより、相互に依存するソース・ファイルの不要なコンパイルを減らし、編集およびコンパイルのサイクルを高速化できます。
JDeveloperを使用してコンパイルを行う際に、「メイク」を使用してコンパイルする場合は、常に依存性チェックが実行されます。「メイク」では、JDeveloper内で自動的に作成される依存性ファイルが使用されます。
コマンドラインからコンパイルする場合は、次のパラメータを指定して依存性ファイルを作成または使用します。
javac -make
<makedepfile>
「プロジェクト・プロパティ」でオプションを設定すると、プロジェクトごとに、Javaコンパイラを構成できます。
たとえば、コンパイラで次のようなメッセージが表示されないようにしたい場合があります。
例12-1 コンパイラ・メッセージ
注意: 入力ファイルの中には、未チェック操作または安全でない操作を使用するものがあります。
注意: 詳細は、-Xlint:uncheckedで再コンパイルしてください。
プロジェクト・プロパティをコンパイル用に設定するには、次のようにします。
「アプリケーション」ウィンドウでプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。
また、「アプリケーション」ウィンドウで、プロジェクト・ノードをダブルクリックすることもできます。
「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを開きます。
「オプション」をクリックします。
「コンパイラ・オプション」の下で、「Javac」ノードを展開します。
オプションで、「警告」ノードを開きます。
オプションとしてまずここをクリックすると、どのオプションがデフォルトでオンになるかを確認できます。たとえば、「-Xlint:all」がオンになっている場合、すべての-Xlint
警告がオンになります。
例12-1に示す「-Xlint」
メッセージを表示しないようにするには、「プロジェクト・プロパティ」ダイアログの個別の警告をオフ・セクションに進みます。これで、特定のXlintメッセージのみ表示をオフにし、他のメッセージはデフォルトで表示するようにできます。
オプションで、個別の警告をオフ・ノードを開きます。
「-Xlint Unchecked」チェック・ボックスの選択を解除します。
すべてのダイアログを閉じて再コンパイルします。
注意: コンパイル前にすべてのプロジェクト・ファイルを自動的に保存するには、「プリファレンス」ダイアログの「コンパイラ」ページでこれを指定します。 |
コンパイラによるマルチバイト文字の解釈方法を制御するコード体系を指定できます。指定しない場合、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。
テキスト文字は、様々なコード体系を使用して表現されます。これらは、Windows環境ではコード・ページ、Javaではネイティブ・エンコーディングと呼ばれます。データをあるコード体系から別のコード体系に移動する場合、変換が必要です。各体系の拡張文字セットは異なる場合があるので、変換によってデータが失われないようにする必要があります。
JDeveloperソース・エディタを含むほとんどのテキスト・エディタでは、動作しているプラットフォームのネイティブ・エンコーディングが使用されます。たとえば、日本語のWindowsではシフトJISが使用されます。ソース・コードがシフトJISを使用してエンコードされている場合、これを米語のWindows環境でコンパイルするには、ソースが正しく読み込まれるようにコンパイラに対してシフトJISエンコーディングを指定する必要があります。
JDeveloperは、現在インストールされているJ2SEに含まれている文字コード体系をサポートしています。
エンコーディング・オプションを設定するには、次のいずれかを実行します。
JDeveloperで、「プロジェクト」→「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを選択します。
コマンドラインで、javacコマンドと-encoding
オプションを使用し、その後ろにエンコーディング名を入力します。
次のいずれかの方法で、エンコーディング名を選択します。
「文字コード」ドロップダウン・リストから名前を選択します。
使用環境のデフォルト・エンコーディングを使用する場合は、「文字コード」ドロップダウン・リストから「default」を選択します。
Java SDKでサポートされるエンコーディングの一覧は、次を参照してください。
http://download.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html
JDeveloperは、Javaコンパイラ(Javac)を使用してJavaソース・コード(.java
ファイル)をJavaバイトコード(.class
ファイル)にコンパイルします。生成されるバイトコードは、Java Virtual Machine (JVM)のマシン・コードです。Javaソース・ファイルのコンパイルにより、各クラス宣言およびインタフェース宣言に対して個別のクラス・ファイルが生成されます。生成されたJavaプログラムを特定のプラットフォームで実行すると、そのJVMによってclassファイルに含まれるバイトコードが実行されます。
Javacでは、指定されたJavaファイルの他に、対応するクラス・ファイルのないインポート・ファイルがコンパイルされます。(-make
オプションを使用して)依存性チェックを指定しないかぎり、すべてのターゲットJavaファイルがコンパイルされます。詳細は、第12.3項「依存性チェックの理解」を参照してください。
JDeveloper内部で操作する場合、コンパイラとしてJavacが使用されます。コンパイラのオプションは、「プロジェクト・プロパティ」→「コンパイラ」→「オプション」と選択して設定できます。「コンパイラ・オプション」ページに表示される各オプションの横に説明が表示されます。
アプリケーション(ワークスペース)とプロジェクトをコンパイルするには、次の2つの方法があります。
JDeveloper内部で、アプリケーションとプロジェクトのノードに対してビルドおよびコンパイルの各オプションを使用します。
コマンドラインから、ojmake
およびojdeploy
を使用します。
jdeveloper/jdev/bin
ディレクトリに「ojmake」
と「ojdeploy」
の両方があります。
ojmake
は、デプロイメントを伴わないアプリケーションとプロジェクト、たとえばデプロイメント・プロファイルが定義されていないプロジェクトなどに対して使用できます。
ojdeploy
は、すべてのアプリケーションおよびプロジェクト(デプロイメントを伴うものを含む)のビルドを扱うことができます。これは、ojmake
のスーパーセットと考えられます。
ツールのヘルプは、コマンドラインでojmake
またはojdeploy
を実行するだけで表示できます。ヘルプはコンソールに表示されます。
注意: コマンドラインから操作する場合にはJavacを使用してJavaファイルをコンパイルできますが、Javacを手動で実行してアプリケーションとプロジェクトをビルドすることはできません。 |
ojmakeの使用方法の詳細は、第12.7.20項「ojdeployおよびojmakeの使用方法」を参照してください。
ojdeployの使用方法の詳細は、第9.8.2項「ojdeployの使用方法」を参照してください。
クリーンを実行すると、以前のビルドのアーチファクトを削除し、新規に操作を開始できます。「クリーン」コマンドを使用して、アプリケーションまたはプロジェクトのクリーンを実行できます。このコマンドを実行すると、プロジェクトまたはアプリケーションの出力ディレクトリおよびデプロイ・ディレクトリがクリーンされます。
「クリーン」コマンドをアプリケーションまたはプロジェクトに対して実行すると、クラス・ファイル、コピーしたリソース・ファイル、およびデプロイしたファイルのすべてが削除されます。このことを実行すると、出力ディレクトリおよびデプロイ・ディレクトリに古いファイルが確実に残らないようにできます。たとえば、名前変更、移動または削除を行ったクラスと、このようなクラスに属する古いクラス・ファイルは削除する必要があります。同様に、名前変更、移動または削除を行ったリソースやデプロイと、出力ディレクトリまたはデプロイ・ディレクトリに残っているそれらの古いコピーも削除する必要があります。
アプリケーションのデプロイ・ディレクトリの内容が削除されます。
「クリーン」コマンドを正常に実行するには、次の条件が満たされている必要があります。
クリーンするプロジェクトの出力ディレクトリ、またはクリーンするアプリケーションの各プロジェクトの出力ディレクトリが指定されていること
出力場所がファイルではなく、ディレクトリとして指定されていること
「クリーン」コマンドを使用すると、新しいビルド・プロセスを開始するために、以前のビルドから残されたアーチファクトを削除できます。
アプリケーション内で単一プロジェクトをクリーンすることができます。
プロジェクトをクリーンするには、次のようにします。
「アプリケーション」ウィンドウで、クリーンするプロジェクトを選択します。
「ビルド」メニューで、「<project>のクリーン」を選択します。
「<project>をクリーン中」ダイアログで、「はい」をクリックします。
アプリケーションのクリーンによって、アプリケーションとそのすべてのプロジェクトがクリーンされます。アプリケーションのクリーンを実行すると、次の処理が行われます。
アプリケーションを構成する各プロジェクトの出力ディレクトリおよびデプロイ・ディレクトリの内容が削除されます。
アプリケーションのデプロイ・ディレクトリの内容が削除されます。
アプリケーションをクリーンするには、次のようにします。
「アプリケーション」ウィンドウで、クリーンするアプリケーションを選択します。
「ビルド」メニューで、「すべてクリーン」を選択します。
「アプリケーションをクリーン中」ダイアログで、「はい」をクリックします。
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ビルドファイルの作成:
「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。
「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。
「項目」リストで、「アプリケーションからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。
「OK」をクリックします。新しいbuild.xml
ファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.properties
ファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。
プロジェクト・レベルでのAntビルドファイルの作成:
「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。
「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。
「項目」リストで、「プロジェクトからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。
「OK」をクリックします。新しいbuild.xml
ファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.properties
ファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。
空のAntビルドファイルの作成:
「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。
「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。
「項目」リストで、「空のビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。
「OK」をクリックします。新しいbuild.xml
ファイルが作成され、XMLソース・エディタで開きます。これは、「アプリケーション」ウィンドウの「リソース」ノードに表示されます。
ビルドファイル・ターゲットに対するAntの実行:
プロジェクト・ビルドファイル内のターゲットに対して実行する場合。プロジェクトには複数のAntビルドファイルを含めることができますが、プロジェクトのビルドファイルとして指定できるのは1つのみです。「プロジェクトでAntを実行」ツールバー・アイコンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。
Antビルドファイルの編集時に「構造」ウィンドウから実行する場合。XMLソース・エディタでAntビルドファイルを開くと、そのターゲットが「構造」ウィンドウに表示されます。これらを選択して実行できます。
独自に定義した外部ツールから実行する場合。「外部ツールの作成」ウィザードを使用して、Antターゲットを作成するメニュー項目およびツールバー・ボタンを定義します。
AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。
プロジェクトには複数のAntビルドファイルを含めることができ、これらの1つをプロジェクトのビルドファイルとして指定できます。「<project>でAntを実行」ツールバー・ボタンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。
プロジェクトのビルドファイルを選択して構成するには、Antプロジェクトのプロパティ・ページに移動します(「プロジェクト」→「プロジェクト・プロパティ」→「Ant」を選択)。
プロジェクトのビルドファイルのターゲットに対してAntを実行するには、次のようにします。
ツールバーで、「<project>でAntを実行」をクリックします。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。
メイン・メニューから、 「ビルド」→「<project>でAntを実行」をクリックします。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。
「構造」ペインからターゲットを選択します。
Apache Mavenは、ビルド・プロセスの管理と自動化に広く利用されるツールです。また、プロジェクト管理、特に依存性およびリリース管理にも利用されます。
JDeveloperを使用してビルドされたアプリケーションのビルド、テストおよびデプロイを、一貫性をもって自動的に行うことができます。これを使用すると、開発者は、Mavenを使用するプロジェクトでの作業時に、Mavenを使用する別のプロジェクトに容易に移動できるという利点を享受できます。以前にMavenを使用したことのある開発者の多くは、Mavenを使用する馴染みのないプロジェクトでも迅速にダウンロードし、ビルドして、デプロイすることができます。
Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトをビルドする際に、そのプロジェクトのPOMと、Mavenを使用するすべてのプロジェクトで共有される一連のプラグインを使用すると、統一されたビルド・システムが提供されます。
アプリケーションの開発にOracle Fusion Middleware 12cが使用できる場合は、Mavenを使用して次の処理が行えます。
プロジェクトをビルドします。
Oracleおよびサード・パーティのアーティファクトに対して依存性を管理します。
内部または外部(パブリック)Mavenリポジトリからアーティファクトを自動的にダウンロードします。
Mavenの詳細は、http://maven.apache.org/index.html
を参照してください。
Mavenリポジトリは、アーティファクトのコレクションをホストしている共有可能な場所です。アーティファクトは、中央のパブリック・リポジトリまたはプライベート・リポジトリからプルできます。Mavenでは、指定されたパブリックまたはプライベート・リポジトリのアーティファクトが更新されます。各アーティファクトはローカルのMavenリポジトリにビルド実行としてプルされます。アーティファクトは、特定のディレクトリ構造で整理されています。これには、コンパイル済コード (JARファイル、WARファイル)と、そのコードに関するメタデータが含まれます。これらはホーム・ディレクトリの外に置かれます。ホーム・ディレクトリにはローカル・リポジトリもあります。このリポジトリはアーティファクトのキャッシュとして動作します。
Mavenローカル・リポジトリは、プロジェクトに必要なすべてのアーティファクトと依存性がダウンロードされるシステム専用のものです。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。この場所にあるコンテンツは編集しないでください。
Mavenゴールを実行してプロジェクトをビルドすると、必要なすべての依存性がアップストリーム・リポジトリからダウンロードされて、ユーザーのローカル・リポジトリに保存されます。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。
JDeveloperはMavenリポジトリを管理し、通常はHTTPを通してユーザーがそれを利用できるようにします。また、その他の、通常は外部のMavenリポジトリのプロキシとして動作し(アーティファクトをキャッシュ)、ビルド時間を短縮したり、ネットワーク使用率を低減することもできます。つまり、Maven POMは、開発者が集中する製品のアーティファクト別に用意されます。したがって、該当するMavenリポジトリを指し示すようにMavenを構成することができます。
プラグインを使用してMavenを拡張することができます。プラグインにより、レポート用またはビルド・プロセス用に他にも多数の開発ツールが使用できるようになります。プラグインにより、Mavenゴールの実行が可能になります。すべての作業はプラグインによって処理されます。次のように、多数のコア・プラグインがあります。
ビルド・プラグインはビルド時に実行するため、POMの「<build/>」要素に構成する必要があります。
レポート・プラグインはサイト生成時に実行するため、POMの「<reporting/>」要素に構成する必要があります。
利用可能なMavenプラグインのリストについては、http://maven.apache.org/plugins/index.html
を参照してください。
Maven依存性は、プロジェクトのビルドに必要なJARファイルが含まれているライブラリの指定に使用します。ローカル・リポジトリに存在しない依存性を使用してプロジェクトをビルドすると、Mavenでその依存性が検索され、ユーザーのローカル・リポジトリに追加されます。プロジェクトがMavenプロジェクトであり(つまり、POMファイルが関連付けられている)、依存性がプロジェクトに追加されている場合は、変更もPOMにコミットされます。
Mavenは、コンパイルおよび、依存性を必要とするその他のゴールに対する依存性をダウンロードして、リンクします。また、これらの依存性(推移依存性)の依存性を取り入れて、プロジェクトで必要とされる依存性のみにリストを集中させることができます。
依存性は、「依存性」タブでの選択とPOMファイルとの間で同期化されます。たとえば、プロジェクトの依存性がPOMにはなく、プロジェクトから別の依存性を追加した場合、Maven: 依存性ダイアログで「OK」をクリックすると、両方の依存性がPOMに追加されます。
POMファイルの依存性は、jprプロジェクトまたは、POMファイルと関連するjwsアプリケーションを使用して常に同期化されます。依存性(リポジトリの依存性を除く)も、「プロジェクト・プロパティ」ダイアログと「アプリケーション・プロパティ」ダイアログから追加できます。これらの依存性は、関連するPOMファイルと自動的に同期化されます。
プロジェクト・オブジェクト・モデル(POM)は、Mavenがプロジェクトをビルドする際に使用するプロジェクトと構成詳細に関する情報を含むXMLファイルです。プロジェクトのビルドに必要なほとんどの情報が、このXMLファイルに含まれています。POMで指定できる構成情報としては、プロジェクトの依存性、プラグイン、実行可能なゴール、ビルド・プロファイルなどがあります。
POMは階層編成されています。
プラグイン同様、MavenアーティファクトはORACLE_HOME/maven/artifact
にインストールされています。
POMファイルは、Application/Project resources
ディレクトリにあります。
Mavenプロジェクト・オブジェクト・モデルの詳細は、次のサイトを参照してください。http://maven.apache.org/index.html
プロジェクトに対してPOMファイルを選択すると、jprのパスと依存性が自動的に同期化します。
POMファイルを設定する手順は次のとおりです。
「アプリケーション」ウィンドウで、設定する必要のあるPOMファイルのプロジェクトを選択します。
「メイン・ツールバー」から、「プロジェクト」→「プロジェクト・プロパティ」を選択します。
「Maven」を選択します。
「参照」ボタンをクリックして、必要なPOMファイルを選択します。
連続配信とは、ソフトウェアのビルド・プロセスから実際の配信にまでわたる方法の機能拡張の1つです。連続配信では、連続統合の終了時点から始まり、ソフトウェアのリリース管理とエンド・ユーザーへのデプロイの自動化、ソフトウェアのビルドとテストの自動化のためのステップが実行されます。この目的は、ユーザーが要件を表明して、その要件に対応できる製品が配信されるまでの時間を最小化することです。これによって、大規模ソフトウェアのデプロイメント・プロジェクトによく見られる問題が回避されます。
連続統合とは、品質管理をわずかな労力で頻繁に実行することによって品質の向上とソフトウェア配信時間の短縮を図るためのソフトウェア・エンジニアリング方法の1つです。この特徴的な手法は次のとおりです。
バージョン管理システムの使用
開発者が毎日、メインのコードラインにコミットすること
製品がすべてのコミットに対してビルドされること
ビルドは自動化され、高速に処理されること
本番に似た環境に自動的にデプロイされること
自動テストを採用すること
ビルド違反者が誰でも確認できるように、すべてのビルドの結果が公開されること
配信可能なものを開発者、テスター、その他のステークホルダーが容易に利用できること
Mavenを使用するには、まずアプリケーションを作成し、その後でアプリケーション内の少なくとも1つのプロジェクトに対してオプションを選択します。
「新規ギャラリ」を使用すると、アプリケーションとそのすべてのプロジェクトに対してPOMファイルを生成できます。これによって、アプリケーション、アプリケーションの最上位プロジェクト・オブジェクト・モデル・ファイル(pom.xml
)、およびプロジェクトごとのデフォルトのpom.xml
ファイルが生成されます。
Mavenアプリケーションとプロジェクトを作成して使用する手順は次のとおりです。
メイン・メニューから、「ファイル」→「新規」→「ギャラリから」→「Maven」→「アプリケーションPOM」を選択します。
ダイアログの手順に従って、Mavenテクノロジで使用するために構成されるアプリケーションの作成オプションを指定します。
ウィザードで(必須)とマークされたオプションを入力したことを確認します。
グループID: プロジェクトの一意の識別子(例: Project.)。
アーティファクトID: グループIDによって指定されたグループ内で一意のアーティファクトを表す識別子(例: Project1.jpr
)。プロジェクトに対してMavenにより生成されたアーティファクトの例として、JAR、ソースおよびバイナリ・ディストリビューション、WARがあります。
バージョン: このプロジェクトにより生成されたアーティファクトの現在のバージョン。
POMのグループID、アーティファクトID、およびバージョンは、<groupId>:<artifactId>:<version>
のフォームでプロジェクトの完全修飾アーティファクト名を形成します。
ウィザードを終了すると、1つのMavenプロジェクトを示した「アプリケーション」ウィンドウが表示されます。
注意: また、別のタイプのアプリケーション、たとえばカスタム・アプリケーションを作成し、「新規ギャラリ」を使用してそれに既存のMavenをインポートすることもできます。 |
「アプリケーション」ウィンドウで、プロジェクトのPOMファイルをダブルクリックして開きます。
デフォルトでは、POMファイルの名前は「pom.xml」
です。これは通常、「アプリケーション」ウィンドウの「プロジェクト」→「アプリケーション・ソース」→「<project_name>」に置かれています。
「概要」タブで、「リポジトリ」をクリックします。
「ローカル・リポジトリ」フィールドで、赤の下線をチェックします。赤の下線は、現在指し示しているディレクトリが無効であることを示します。有効なディレクトリに対しては表示されません。
このフィールドには、ローカルMavenリポジトリの場所が表示されます。このリポジトリには、プロジェクトで必要になる可能性のあるすべてのアーティファクトと依存性のローカル・コピーが保持されています。
デフォルトでは、ローカル・リポジトリの場所は「USER_HOME/.m2/repository」
です。ローカル・リポジトリの場所に赤の下線が引かれている場合、その場所は無効です。ファイル・エクスプローラ、または「ローカル・リポジトリ」フィールドの横の参照アイコンを使用して、ディレクトリを作成します。有効なディレクトリが選択されると、赤の下線が消えます。
ローカル・リポジトリは、明示的に変更されないかぎり、すべてのプロジェクトに共通です(推奨)。
「ファイル」→「保存」を選択して、すべての変更を保存します。
メイン・メニューから、「ツール」→「プリファレンス」→「Maven」→「設定」を選択します。
オプションで、「ユーザー設定」フィールドのパスを変更します。
Mavenアプリケーションの作成時には、デフォルトにより、settings.xml
というファイルもUSER_HOME/.m2/
に作成されます。これはメインのMaven制御ファイルであり、ローカル・リポジトリ・パスやプロキシ設定などの情報へのアクセスに使用します。settings.xml
ファイルは、明示的に変更されないかぎり、すべてのプロジェクトに共通(推奨)です。
「OK」をクリックします。
メイン・メニューから、「ツール」→「プリファレンス」→「Webブラウザとプロキシ」を選択します。
デフォルトでは、settings.xml
にはアクティブなプロキシ情報が含まれていませんが、JDeveloperのプロキシ設定は有効になっています。
「プロキシ設定」タブをクリックして、「システムのデフォルト・プロキシ設定の使用」または「手動プロキシ設定」のいずれかを選択します。
Mavenでは、リモート・リポジトリからのアーティファクトのダウンロードにプロキシが使用されます。
終わったら、「OK」をクリックします。
Maven POMファイルはJDeveloper .jpr
ファイルと類似しています。Mavenでは、POMファイルを使用するプロジェクトについてすべて理解しています。プロジェクトに関するすべての内容が含まれています。
POMを作成するには、次のようにします。
「アプリケーション」ウィンドウで、POMを検索するプロジェクトまたはファイルを選択します。
「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。
「カテゴリ」リストで、「一般」を開いて「プロジェクトのMaven POM」を選択します。
ダイアログの必須および任意のオプションを選択します。
「OK」をクリックします。
デフォルトでは、POMが「概要エディタ」に開きます。
「Mavenゴールの実行」や「Mavenフェーズの実行」などのコマンドのメニューにアクセスするには、「pom.xml」
ソース・タブ内のテキストを右クリックします。
Mavenアプリケーションを新しく作成する際、デフォルトのMaven構造に合わせることができます。これは推奨されています。
デフォルトのMaven構造を変更する手順は次のとおりです。
「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。
「カテゴリ」リストで「一般」を開き、「アプリケーション」を選択します。
「カスタム・アプリケーション」を選択し、「OK」を選択します。
デフォルトのオプションを選択して、「次へ」をクリックします。
「プロジェクトの機能」タブで、「Maven」にスクロール・ダウンします。
シャッフル・アイコンをクリックして、「Maven」を「プロジェクトの機能」タブの「選択済」列まで移動します。
「次へ」をクリックします。
「デフォルトのMaven構造に合わせて標準プロジェクト構造を変更」チェック・ボックスを選択します。
デフォルトでは、これが選択されます。
「終了」をクリックして、カスタム・アプリケーションを作成します。
Archetypeは、Mavenを使用してアプリケーションをすばやく作成するためのテンプレートに類似しています。Archetypeは、Mavenプロジェクトを生成するための一貫した手段となります。詳細は、
を参照してください。
http://maven.apache.org/guides/introduction/introduction-to-archetypes.html
Archetypeを使用してMavenアプリケーションを作成する手順は次のとおりです。
「ファイル」→「新規」→「ギャラリから」を選択します。
「カテゴリ」リストで、「一般」を開いて「Maven」→「Archetypeからの生成」を選択します。
「Archetypeからのプロジェクトの作成」ダイアログで、新規プロジェクトのオプションを入力します。ダイアログで(必須)とマークされたオプションを入力したことを確認します。
「Maven Archetype」フィールドの横の参照アイコンをクリックします。
表示されたダイアログ上部のフィールドに、使用するArchetypeを検索するための検索テキストとフィルタを入力します。
たとえば、検索テキストとしてj2eeを入力して、maven-archetype-j2ee-simple
というArchetypeを検索することができます。また、検索を特定のリポジトリに絞り込むように選択することもできます。
注意: 使用可能なリポジトリのリストは、「Maven」 - 「リポジトリ」ページで設定されます。詳細は、第12.7.14項「リモート・リポジトリの指定方法」を参照してください。 リモート・リポジトリにアクセスするには、「Webブラウザとプロキシ」ダイアログでプロキシ情報が指定されていることを確認します。詳細は、第23.2.1項「プロキシ設定およびJDeveloperの使用方法」を参照してください。 |
[Return]キーを押します。
「一致するArchetype」リストに、検索基準を満たすすべてのArchetypeが表示されます。
リスト内のArchetype(たとえば、maven-archetype-j2ee-simple)にドリルダウンして、それを選択します。
「OK」をクリックします。
Archetypeソースがダウンロードを開始します。
新規Mavenアプリケーション・ダイアログで、Mavenアプリケーションの名前と場所を入力します。
新規MavenアプリケーションがArchetypeから作成されます。これは、図12-1に示すように、「アプリケーション」ウィンドウに表示されます。
注意: 「新規ギャラリ」→「一般」→「Maven」→「Mavenプロジェクトのインポート」を選択して、既存のMavenプロジェクトをJDeveloperにインポートすることもできます。これにより、インポートされたMavenソースのコンテンツに基づいてMavenアプリケーションと関連のプロジェクトが作成されます。 |
図12-1に示すアプリケーションには、多数のMavenプロジェクトが含まれています。
「アプリケーション」ウィンドウで、作成したMavenアプリケーションの下のejbsプロジェクトまでスクロールします。
ejbsを開き、さらに「リソース」を開きます。
プロジェクト・ファイルをダブルクリックします。デフォルトでは、これは「pom.xml」です。エディタが開きます。
「依存性」タブをクリックします。
「依存性」タブの依存性、たとえば、図12-2に示す依存性に注目してください。
「メイン・ツールバー」から、「プロジェクト」→「プロジェクト・プロパティ」→「ライブラリとクラスパス」を選択します。
図12-2と同じ2つの依存性がここに表示されていることに注目してください。
依存性は、アプリケーションとそれに関連するプロジェクトPOMファイルとの間で同期化されています。アプリケーションまたはPOMファイルに新規の依存性を追加して、同期プロセスを観察します。同期化は、JDeveloperビルド・ツールとMavenの両方を使用してプロジェクトを管理するために必要です。
「プロジェクト・プロパティ」ダイアログで、「Maven」をクリックします。
このPOMファイルは、プロジェクトのデフォルトpomとして設定されています。
様々な理由でリモート・リポジトリにアクセスする必要があります。たとえば、プロジェクトで様々な外部ベンダーの依存性を使用する場合があります。これらの依存性は、異なるリモート・リポジトリで使用可能です。JDeveloperでは、リモート・リポジトリでのアーティファクトの構成と検索を行うことができます。
リモート・リポジトリを管理する手順は次のとおりです。
「メイン・メニュー」から、「ツール」→「プリファレンス」→「Maven」→「リポジトリ」を選択します。
「リモート・リポジトリ」表で、「追加」(+)アイコンをクリックします。
表に新しい行が追加されます。
新しい行を選択します。
「Maven」 - 「リポジトリ」ページの「リポジトリの詳細」セクションで、リモート・リポジトリのURL (例: http://repo1.maven.org./maven2
.)を入力します。
「索引更新URL」フィールドに、nexus-maven-repository-index.zip
およびnexus-maven-repository-index.properties
のダウンロード元であるベースの場所を入力します。
リポジトリ内でアーティファクトを検索する索引場所を指定して、実際にそれをダウンロードしなくてよいようにする必要があります。
注意: 「テスト」ボタンをクリックすると、リポジトリとその索引データにアクセス可能かどうかをチェックすることができます。 |
「リモート・リポジトリ」表で行の横にあるチェック・ボックスを選択します。
「リポジトリの索引付け」ボタンをクリックします。
これで、選択したリモート・リポジトリの索引データがダウンロードされます。
Mavenは、ビルド・ライフサイクルの概念に基づいています。ビルド・ライフサイクルは、ゴールとしても知られるフェーズで構成されています。Mavenには、プロジェクトの管理に使用されるクリーン、コンパイル、ビルド、パッケージなど、デフォルトのゴールがいくつか用意されています。すべてのプロジェクトでは、フェーズ内にゴールが含まれている同じコア・フェーズを実行します。
Mavenゴールを実行する手順は次のとおりです。
「メイン・メニュー」から、「ツール」→「プリファレンス」→「Maven」→「フェーズ/ゴール」を選択します。
また、「ソース」タブのPOMファイルを右クリックして、「ゴール・プロファイルの管理」を選択することもできます。
オプションで、将来使用するために保存できるゴールのコレクションであるプロファイルを設定するには、「ゴール・プロファイル」フィールドの横のプラス(+)アイコンをクリックします。
「ゴール・プロファイル」フィールドにプロファイルの名前を入力して、「OK」をクリックします。
「使用可能なライフサイクル・フェーズ」リストで、1つ以上のゴールを選択します。
注意: これをはじめて試行する場合は、このリストにデフォルトのゴール・セットが含まれていることを確認してください。 |
シャトル・ボタンをクリックして、選択内容を「選択したフェーズ/ゴール」リストに追加します。
「OK」をクリックします。
「アプリケーション」ウィンドウで、実行する必要のあるプロジェクトのPOMファイルにスクロール・ダウンします。
右クリックして、「Mavenフェーズ"compile"の実行」を選択します。
これによって、コンパイル・ゴールの実行に必要なアーティファクトがリモート・セントラル・リポジトリからローカル・リポジトリに自動的にダウンロードされます。これは1回かぎりのプロセスです。これらのアーティファクトがローカル・リポジトリにコピーされたら、今後ダウンロードする必要はありません。
ダウンロード後に、コンパイル・ゴールが実行されます。プロジェクトとその中に含まれているJavaクラスは、Mavenを使用してコンパイルされます。
注意: 依存性またはアーティファクトの解決時にエラーが報告された場合は、「リポジトリ」ページを使用してリポジトリをPOMファイルに追加してから、再度試みてください。URLが指し示しているリポジトリが稼働中であり、アクセス可能であることを確認します。 |
「アプリケーション」ウィンドウで選択した既存のプロジェクトに基づいて、Maven POMを作成できます。複数のソース・ディレクトリについてビルド要素が追加されます。プロジェクトに対して指定したJavaコンパイラに関する設定が追加されます。
プロジェクトのMaven POMを作成する手順は次のとおりです。
「アプリケーション」ウィンドウで、POMを作成するためのプロジェクトを選択します。
「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。
「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。
「プロジェクトのMaven POM」を選択します。
ダイアログを完了した後で、「OK」をクリックします。
pom.xmlを編集している間、ビルドの実行時に空のタグや無効な値によってエラーが生じることがあります。このようなエラーは、監査の一環として捕捉して報告する必要があります。監査では、pom.xmlに対してMavenプロジェクトを作成しているときに報告されたエラーをすべて処理する必要があります。
検証の2つの例を次に示します。
継承後にアーティファクトID、グループID、従属性バージョン、プラグインなどの無効な値/空の値が適用されます。
プロファイル・アクティブ化ルールのエントリが重複しています。
コード・インサイトを使用すると、pom.xmlソース・ファイルでのコード作成プロセスにかかる時間を短縮できます。
コード・インサイトを確認する手順は次のとおりです。
「コード・エディタ」でpom.xmlファイルを開きます。
「プラグイン」タブで、プラグイン要素を追加します。
プラグインの<executions>セクションを追加します。
コード・インサイトのサポートは、ローカル・リポジトリからフェッチされる「概要」タブの値に基づいています。たとえば、パッケージ・タイプの場合、コード・インサイトは「パッケージ・タイプ」の「概要エディタ」に表示される値リストを表示します。
次のコード・インサイトの値リストもサポートされています。
フェーズ、プラグインの中
更新ポリシー、チェックサム・ポリシーおよびレイアウト
タイプおよびスコープ、依存性の中
プラグインを使用すると、Mavenを使用してビルドされたアプリケーションをMaven環境内からWebLogic Serverにデプロイ、再デプロイして、更新することができます。詳細は、「Oracle WebLogic Serverへのアプリケーションのデプロイ」のデプロイのためのWebLogic Mavenプラグインの使用に関する項を参照してください。
現在JDeveloperでは、Antスクリプトによるデプロイをサポートしています。デプロイ・ターゲットをbuild.xml
ファイルに追加すると、このサポートが有効になります。詳細は、第9.8.3項「Antを使用したコマンドラインからのデプロイ方法」
Maven POMファイルでは、ojdeployと同様にojmakeも使用できます。JDeveloperでは、例12-2に示すように、POMファイルが変更され、必要に応じてojdeployおよびojmakeのデプロイメント・プラグインが追加されます。
例12-2 ojdeployおよびojmakeのデプロイメント・プラグイン
<build> <plugins> <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>
ojmakeの使用法、パラメータ、オプション、および例を参照するには、jdeveloper_install
/jdeveloper/jdev/bin
のコマンドラインで「ojmake」
と入力します。