30 MAF共有ライブラリによるMAFアプリケーション・コンテンツの再使用
この章の内容は次のとおりです。
MAF共有ライブラリによるMAFアプリケーション・コンテンツの再使用の概要
共有ライブラリにより、コンテンツを共有し、複数のMAFアプリケーションで再使用できます。
たとえば、タスク・フローを共有ライブラリに入れ、そこから複数のMAFアプリケーションで使用できるようにすることができます。共有できる他のコンテンツ・タイプには、AMXページ・フラグメント、イメージ、CSS、JavaScriptファイルに加え、iOS用のカスタム起動画面、カスタム・ログイン・ページなどのHTMLページが含まれます。FARがアプリケーション機能を共有するのに対して、共有ライブラリは、タスク・フローなどの個々のアーティファクトを共有するために使用するという点で、共有ライブラリは機能アーカイブ(FAR)と異なります。
他のMAFアプリケーション開発者がアプリケーションで使用できる共有ライブラリを開発する場合は、次のワークフローを使用します。
-
共有ライブラリ用のMAFアプリケーションのアプリケーション・テンプレートを使用して、アプリケーションを作成します。このテンプレートには、共有ライブラリに必要なファイルおよびディレクトリ構造と、共有ライブラリをデプロイするためのデプロイメント・プロファイルが用意されています。「共有ライブラリ用のMAFアプリケーションの作成」を参照してください。
-
タスク・フローなど、共有ライブラリで配布するアーティファクトを追加します。「共有ライブラリ用のMAFアプリケーションへのアーティファクトの追加」を参照してください。
-
共有ライブラリをデプロイし、その共有ライブラリに含まれるアーティファクトをMAFアプリケーションが再使用できることを確認して、共有ライブラリをテストします。「共有ライブラリ用のMAFアプリケーションのデプロイ」および「MAFアプリケーションでの共有ライブラリの使用」を参照してください。
-
完成した共有ライブラリを含むZIPファイルを配布します。
他のMAFアプリケーション開発者が作成した共有ライブラリを使用する場合、JDeveloperの「リソース」ウィンドウで、他のMAFアプリケーション開発者が配布した共有ライブラリのZIPファイルからの抽出を含むディレクトリへのファイル・システム接続を作成します。その後、共有ライブラリをアプリケーションに追加できます。「MAFアプリケーションでの共有ライブラリの使用」を参照してください。
共有ライブラリ用のMAFアプリケーションの作成
他のMAFアプリケーションと共有するアーティファクトを共有ライブラリ用のMAFアプリケーションに追加します。
共有ライブラリ用のMAFアプリケーションの作成は、他のMAFアプリケーションとアーティファクトを共有する最初の手順です。これにより、2つのプロジェクト(ApplicationControllerLibrary
およびViewControllerLibrary
)と、共有ライブラリの内容を説明するlibrary-content.xml
ファイルが作成されます。共有ライブラリ用のアプリケーションと関連するプロジェクトを作成した後、次のタスクを実行します。
-
「共有ライブラリ・ルート・ディレクトリの設定方法」の説明に従って、
ApplicationControllerLibrary
およびViewControllerLibrary
プロジェクトのMAFライブラリ・ルート・ディレクトリのプロパティの値を調べ、一意であることを確認します -
「共有ライブラリ用のMAFアプリケーションへのアーティファクトの追加」の説明に従って、共有するアーティファクトを追加します。
-
「コンシューマへの共有ライブラリの内容の説明方法」の説明に従って、共有ライブラリをコンシューマに説明します。
共有ライブラリ用のMAFアプリケーションの作成方法
JDeveloperの「新規ギャラリ」から呼び出したアプリケーション・ウィザードを使用して、共有ライブラリ用のMAFアプリケーションを作成します。
共有ライブラリ用のMAFアプリケーションの作成時に行われる処理
JDeveloperは、2つのプロジェクトと、それらのプロジェクトが必要とする様々なファイルを使用して、新しいアプリケーションを作成します。
図は、新しく作成された共有ライブラリ用のMAFアプリケーションを示しています。
例30-1は、新しく作成された共有ライブラリ用のMAFアプリケーションの内容を示しています。2つのプロジェクト(ApplicationControllerLibrary
およびViewControllerLibrary
)が含まれており、他のMAFアプリケーションで使用するために配布するアーティファクトを追加します。また、共有ライブラリを説明するファイルであるlibrary-content.xml
ファイルも含まれています。
例30-1 新しく作成された共有ライブラリ用のMAFアプリケーションの内容
MAFappForSharedLib
+---.adf
| \---META-INF
| library-content.xml
+---.data
| ...
+---ApplicationControllerLibrary
| | ApplicationControllerLibrary.jpr
| |
| +---adfmsrc
| | +---application
| | | \---library
| | | DataControls.dcx
| | |
| | \---META-INF
| | adfm.xml
| |
| \---public_html
| \---application
| \---library
| \---ApplicationControllerLibrary
| \---resources
\---ViewControllerLibrary
| ViewControllerLibrary.jpr
|
\---public_html
\---mobile
\---library
\---ViewControllerLibrary
\---resources
共有ライブラリ・ルート・ディレクトリの設定方法
MAFライブラリ・ルート・ディレクトリのプロジェクト・プロパティに対して、MAFアプリケーションが使用する共有ライブラリのすべてのプロジェクトで一意の値を設定します。
コンシューマへの共有ライブラリの内容の説明方法
library-content.xml
ファイルを使用して、共有ライブラリを正常に使用するために知る必要がある、バージョン番号、依存性の説明など、共有ライブラリの情報をコンシューマに提供します。
library-content.xml
ファイルで説明する必要がある依存性の一例に、MAFがカスタムCordovaプラグインを共有ライブラリにパッケージ化しないため、共有ライブラリで必要なカスタムCordovaプラグインがあります。共有ライブラリのコンシューマは、必要なカスタムCordovaプラグインを個別に取得する必要があります。
注意:
MAFはデプロイ時に、共有ライブラリの作成時に使用されたMAFのバージョンをlibrary-content.xml
ファイルに挿入します。
例30-2 library-content.xmlファイル
<library-container
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/adf/mf/sharedlibrary"
name="DocExample">
<version>2.1</version>
<library-description>
This library includes a task flow that enables end users to edit employee details.
</library-description>
</library-container>
共有ライブラリ用のMAFアプリケーションへのアーティファクトの追加
共有するアーティファクトを共有ライブラリ用のMAFアプリケーションの適切なプロジェクトに追加します。
共有ライブラリ用のMAFアプリケーションのテンプレートでは、2つのプロジェクト(ApplicationControllerLibrary
およびViewControllerLibrary
)が作成されます。リソースが使用されるMAFアプリケーションのプロジェクトに対応するライブラリ・プロジェクトにリソースを追加してください。たとえば、iOSデバイスでデフォルトのMAFの起動画面の代わりの起動画面を表示するために追加するカスタムHTMLページは、MAFアプリケーションのApplicationController
プロジェクトにパッケージ化されます。このアーティファクトを共有ライブラリで配布する場合、共有ライブラリ用のMAFアプリケーション内のApplicationControllerLibrary
プロジェクトに追加します。
一般的に、CSSファイル、イメージ、カスタム・ログイン・ページなどのHTMLページを共有するには、ApplicationControllerLibrary
プロジェクトを使用します。AMXページ・フラグメント、タスク・フロー、CSSファイル、イメージおよびJavaScriptファイルを共有するには、ViewControllerLibrary
を使用します。
アーティファクトを使用するのに必要な依存性が共有ライブラリに追加してください。たとえば、データ・コントロールの基礎となるログイン接続およびJavaクラスを含めます。MAFは、共有ライブラリのデプロイ時に、これらの依存性を共有ライブラリにパッケージ化して、共有ライブラリを使用するMAFアプリケーションが使用できるようにします。1つの例外は、Cordovaプラグインです。MAFは、Cordovaプラグインを共有ライブラリにパッケージ化しません。Cordovaプラグインについては、「コンシューマへの共有ライブラリの内容の説明方法」に従って、依存性を説明するエントリをlibrary-content.xml
ファイルに追加して、共有ライブラリのコンシューマに、共有ライブラリとは別にCordovaプラグインを取得する必要があることを通知します。また、共有ライブラリのコンシューマは、共有ライブラリのデプロイ時にMAFが生成するjar-maf-plugins.xml
ファイルを参照して、必要なすべてのCordovaプラグインがMAFアプリケーションに登録されていることを確認できます。
JDeveloperの「新規ギャラリ」を使用して、共有ライブラリに追加するアーティファクトを作成します。たとえば、MAFログイン接続を共有ライブラリに追加する場合、「新規ギャラリ」を起動し、「新規ギャラリ」の検索入力フィールドに「login
」と入力して、MAFログイン・サーバー接続のエントリをすばやく見つけることができます。JDeveloperは、アーティファクトと関連するファイルおよびメタデータを適切なプロジェクトに生成します。たとえば、共有ライブラリでログイン接続を作成すると、共有ライブラリのADF META-INF
ディレクトリにconnections.xml
ファイルが作成されます。この方法に従って、他のアーティファクトを共有ライブラリに追加できます(タスク・フロー、AMXページ・フラグメントなど)。
共有するすべてのアーティファクトをライブラリ・ルート・ディレクトリに作成します。ただし、タスク・フローまたはCSSファイルを共有ライブラリに作成する際、JDeveloperはデフォルトでライブラリ・ルート・ディレクトリに移動しません。これらのアーティファクトを作成するには、ライブラリ・ルート・ディレクトリまたはルート・ディレクトリのサブディレクトリに移動してください。これを行わない場合、共有するアーティファクトはデプロイされる共有ライブラリにパッケージ化されません。たとえば、図ではViewControllerLibraryディレクトリまたはサブディレクトリを選択してタスク・フローを作成します。
共有ライブラリ用のMAFアプリケーションのデプロイ
作成した共有ライブラリをテスト、または完成した共有ライブラリをMAFアプリケーションで使用するアプリケーション開発者に配布するため、共有ライブラリ用のMAFアプリケーションをデプロイします。
共有ライブラリ用のMAFアプリケーションをデプロイした後、ZIPファイルに格納して他のMAFアプリケーション開発者に配布できます。これらの開発者は、MAFアプリケーションで共有ライブラリを使用するため、ZIPの中身を抽出し、JDeveloperの「リソース」ウィンドウから抽出ディレクトリへのファイル・システム接続を追加します。配布前に、JDeveloperの「リソース」ウィンドウでdeploy
ディレクトリのコンテナ・ディレクトリ(MAFappForSharedLibRootDir/deploy/MafSharedLibraryContainer
)へのファイル・システム接続を作成し、テスト用に作成するMAFアプリケーションで共有ライブラリを使用することにより、共有ライブラリをテストできます。「MAFアプリケーションでの共有ライブラリの使用」を参照してください。
MAFには、次のすぐに使用できるデプロイメント・プロファイルが用意されています。
-
MafSharedLibraryContainer1
-
ApplicationControllerLibrary_MafSharedLibraryArchive1 to JAR file
-
ViewControllerLibrary_MafSharedLibraryArchive1 to JAR file
MafSharedLibraryContainer1デプロイメント・プロファイルを使用して、共有ライブラリ用のMAFアプリケーションをデプロイします。MafSharedLibraryContainer1デプロイメント・プロファイルには、すぐに使用できる他の2つのデプロイメント・プロファイルに対するライブラリ依存関係があります。独自のMAF共有ライブラリ・コンテナ・プロファイルを作成する場合、たとえば、JDeveloperにより生成されるZIPファイルの名前などのデプロイメント・オプションをカスタマイズする必要があるため、作成した共有ライブラリ・デプロイメント・プロファイルに対するライブラリ依存関係を構成する必要があります。
デプロイメント・プロファイルが作成するファイル名が一意で、共有ライブラリのコンシューマが容易に区別できることを確認することをお薦めします。デフォルトでは、MafSharedLibraryContainer1
デプロイメント・プロファイルにより、ZIPファイルの名前が付けられ、MafSharedLibraryContainer1.zip
が生成されます。同様に、プロジェクトレベルのデプロイメント・プロファイル(ViewControllerLibrary
およびApplicationControllerLibrary
)により、JARファイルが生成され、ViewControllerLibrary1.jar
およびApplicationControllerLibrary1.jar
が生成されたJARファイルの名前に付加されます。次の図の左側は、2つの共有ライブラリ(SharedLibOne
およびSharedLibTwo
)を使用するMAFアプリケーションの「アプリケーション」および「リソース」ウィンドウであり、それぞれ生成されたJARファイルとZIPファイルのデフォルトのファイル名が表示されています。図の右側は、「MAF共有ライブラリ・コンテナ・オプション」ページであり、生成されたZIPファイルのデフォルト名を編集できます。ZIPおよびJARファイル名を生成するデプロイメント・プロファイルを編集することにより、エンド・ユーザーは共有ライブラリを区別しやすくなり、デプロイメントの問題を回避できる場合があります。データ・プロファイルの編集の詳細は、「デプロイメント・プロファイルでの作業」を参照してください。
図30-4 デフォルトのファイル名を含む共有ライブラリおよびデフォルトのファイル名を編集するためのデプロイメント・プロファイル
「図30-4 デフォルトのファイル名を含む共有ライブラリおよびデフォルトのファイル名を編集するためのデプロイメント・プロファイル」の説明
共有ライブラリ用のMAFアプリケーションのデプロイ方法
共有ライブラリをZIPファイルにデプロイするMAF共有ライブラリ・コンテナのデプロイメント・プロファイルを使用して、共有ライブラリ用のMAFアプリケーションをデプロイします。
共有ライブラリ用のMAFアプリケーションのデプロイ時に行われる処理
JDevelopeは、MafSharedLibraryContainer
デプロイメント・プロファイルを使用して、次のアーティファクトを含むZIPファイル(デフォルト名MafSharedLibraryContainer1.zip
)を作成します。
//Contents of MafSharedLibraryContainer1.zip
| ApplicationControllerLibrary_MafSharedLibraryArchive1.jar
| ViewControllerLibrary_MafSharedLibraryArchive1.jar
|
\---META-INF
jar-maf-plugins.xml
library-content.xml
MANIFEST.MF
oracle.adf.common.services.ResourceService.sva
ZIPのJARファイルには、共有ライブラリ用のMAFアプリケーション内の各プロジェクトからのリソースが含まれます。ただし、ZIPファイルを共有ライブラリのコンシューマに配布する必要があります。
MAFアプリケーションでの共有ライブラリの使用
MAFアプリケーションに含まれるアーティファクトを再使用できるよう、ファイル・システムの共有ライブラリへのIDE接続を作成します。
library-content.xml
ファイルの内容を調べ、共有ライブラリをMAFアプリケーションで正常に使用するために実装する必要がある依存性が含まれているかどうか確認します。たとえば、Cordovaプラグインを取得し、MAFアプリケーションに登録する必要がある場合があります。共有ライブラリの作成者は、共有ライブラリを含むZIPファイルを配布する前に、library-content.xml
ファイルに依存性が含まれていることを確認してください。ファイル・システムの共有ライブラリへのIDE接続を作成した後、library-content.xml
ファイルの内容を確認できます。
共有ライブラリをアプリケーションに追加した後、共有ライブラリを使用するMAFアプリケーションのAMXページで、AMXページ・フラグメントなど共有ライブラリのアーティファクトを使用できます。
MAFアプリケーションでの共有ライブラリの使用方法
共有ライブラリのZIPファイルから抽出したものを含むディレクトリへのファイル・システムのIDE接続を追加します。これにより、共有ライブラリのアーティファクトをJDeveloperの「リソース」ウィンドウからMAFアプリケーションで使用できるようになります。
deploy
ディレクトリの子コンテナ・ディレクトリ(MAFappForSharedLibRootDir/deploy/MafSharedLibraryContainer
)へのファイル・システムのIDE接続を作成し、共有ライブラリをテストするために作成したMAFアプリケーションで使用します。
ダイアログ・ピッカーを使用できないユース・ケースとしては、MAFアプリケーションのCSSファイルの共有ライブラリからのイメージの参照があります。現在のCSSファイルから共有ライブラリのイメージ・ファイルへの相対ファイル・パスを使用して、イメージを参照します。
相対パスを作成するには、現在のCSSファイルからWebコンテンツ・フォルダ(ファイル・システムのpublic_html
)に移動します。その後、共有ライブラリ・プロジェクトのライブラリ・ルート・ディレクトリのプロパティおよび追加のサブディレクトリの値、および参照したいイメージのファイル名を付加します。
ライブラリ・ルート・ディレクトリのプロパティがapppackprefix/application/library/ApplicationControllerLibrary
の共有ライブラリ・プロジェクトのimage
サブディレクトリのac_img.png
イメージ・ファイルを参照する例を図に示します。イメージを参照するCSSファイルは、public_html
ディレクトリから2ディレクトリ分離れています。そのため、CSSファイルのイメージに使用する相対ファイル・パスは次のようになります。
"../../apppackprefix/application/library/ApplicationControllerLibrary/image/ac_img.png"
ヒント:
次の図に示すように、JDeveloperで「表示」→「アプリケーション・プロジェクト」→「ライブラリの表示」を選択して、「アプリケーション」ウィンドウの共有ライブラリを表示します。共有ライブラリ用のMAFアプリケーションの使用時に行われる処理
MAFは、共有ライブラリのApplicationControllerLibrary
プロジェクトの内容をMAFアプリケーションのApplicationController
プロジェクトに追加します。同様に、共有ライブラリのViewControllerLibrary
プロジェクトの内容はMAFアプリケーションのViewController
プロジェクトに追加されます。
MAFは、共有ライブラリのJARファイルをそれらを使用するMAFアプリケーションに追加します。図に示すように、これらのJARファイルはこれらを使用するMAFアプリケーションの「アプリケーション」ウィンドウで表示できます。これらのライブラリを表示するには、JDeveloperで「表示」→「アプリケーション・プロジェクト」→「ライブラリの表示」を選択します。
共有ライブラリが、それを使用するMAFアプリケーションを開発するのに使用しているバージョンと異なるバージョンのMAFを使用して作成された場合、MAFは共有ライブラリをMAFアプリケーションに追加しません。つまり、リリース2.4.0.0.1で開発された共有ライブラリは、リリース2.4.0.0.2で開発されたMAFアプリケーションで使用できますが、リリース2.4.0.1.1では使用できません。使用するMAFアプリケーションを作成するのに使用するMAFのリリースをサポートするには、共有ライブラリの作成者は共有ライブラリをアップグレードする必要があります。また、既存のライブラリ・ルート・ディレクトリがMAFアプリケーションが使用する既存の共有ライブラリのライブラリ・ルート・ディレクトリと一致する場合も、MAFは共有ライブラリをMAFアプリケーションに追加しません。共有ライブラリ・ルート・ディレクトリの値の変更の詳細は、「共有ライブラリ・ルート・ディレクトリの設定方法」を参照してください。
共有ライブラリで定義する接続は、共有ライブラリを使用するMAFアプリケーションの接続とマージされます。次の例のように、MAFは、共有ライブラリからMAFアプリケーションのconnections.xml
ファイルに追加する各接続を識別するコメントを追加します。
<!-- The following connections were added by MAF Shared Library 'DocExample': test -->
コメントでは、接続のソースおよび接続の名前が識別されます。前述の例では、'DocExample'
は、共有ライブラリの名前(library-content.xml
ファイルのname
属性に指定された値)を参照し、test
は、接続の名前を参照します。library-content.xml
ファイルのname
属性の値が指定されていない場合、MAFはコンテナZIPの名前(MafSharedLibraryContainer1
など)を使用します。たとえば、MAFアプリケーションが接続をconnections.xml
ファイルにマージした共有ライブラリを使用しなくなった場合や、後述するように、新しいバージョンの共有ライブラリにアップグレードする場合に、このコメントを使用して、MAFアプリケーションのconnections.xml
ファイルから削除できる接続を識別できます。また、JDeveloperは、次の例に示すように、共有ライブラリから追加された接続と、接続を使用する前にさらなる構成が必要かどうかを識別するメッセージを「ログ」ウィンドウに表示します。
[04:42:06 AM] These connections were added by the Add to Application operation. [04:42:06 AM] { [04:42:06 AM] test - new, incomplete LoginConnection connection will be added. Configure before use. [04:42:06 AM] }
MAFが共有ライブラリおよびそれを使用するMAFアプリケーションで重複された接続が定義されていることを検出した場合、共有ライブラリの接続情報をマージせず、MAFアプリケーションから共有ライブラリを削除します。使用するMAFアプリケーションのconnections.xml
ファイルは変更されません。MAFアプリケーションが使用する新しいバージョンの共有ライブラリにアップグレードする場合は、MAFアプリケーションと共有ライブラリに重複する接続が存在するため、MAFによりアップグレードが妨げられることがないよう、既存の接続をMAFアプリケーションから削除するか、共有ライブラリの作成者と連携して、既存の接続をMAFアプリケーションから削除します。
共有ライブラリ・アーカイブのファイル名が重複したMAFアプリケーションのデプロイ
共有ライブラリの内容をパッケージ化する複数のJARに同じファイル名を使用する共有ライブラリによる、使用するMAFアプリケーションのデプロイ方法について説明します。
2つの共有ライブラリ(SharedLib_One
およびSharedLib_Two
)を使用するコンシューマ・アプリケーションがあると仮定します。これらの共有ライブラリには、ルート・ディレクトリのプロパティに一意の値が設定されています。たとえば、test/mobile/library/ViewControllerLibrary_SharedLib_One
は、 SharedLib_One
共有ライブラリのViewControllerLibrary
プロジェクトの値です。同様に、他のプロジェクトのルート・ディレクトリの値は、共有ライブラリのアプリケーションの名前(SharedLib_One
またはSharedLib_Two
)を付加しているため、一意です。ただし、これらの共有ライブラリのアプリケーションの作成者は、2つの共有ライブラリを作成する際、アプリケーション・パッケージの接頭辞に同じ値(test
)を選択しました。
これらの共有ライブラリのデプロイメント・プロファイルが生成するZIPおよびJARファイルのファイル名はデフォルト値のままで、2つの共有ライブラリのアプリケーションは、同じファイル名でZIPおよびJARファイルにパッケージ化されています。
| MafSharedLibraryContainer1.zip ... | test_application_library_ApplicationControllerLibrary1.jar | test_mobile_library_ViewControllerLibrary1.jar
2つの共有ライブラリのアプリケーションの各プロジェクトのルート・ディレクトリのプロパティに一意の値が設定されているため、コンシューマ・アプリケーションは正常に2つの共有ライブラリを追加できます。ただし、2つの共有ライブラリのアプリケーションの追加後にコンシューマ・アプリケーションをデプロイしようとすると失敗し、次のメッセージがJDeveloperの「ログ」ウィンドウに表示されます。
[11:45:00 AM] ---- Deployment started. ---- ... [11:45:07 AM] Deployment cancelled. [11:45:07 AM] ---- Deployment incomplete ----. [11:45:07 AM] Failed deployment to Android emulator. Encountered exception: Cannot deploy the MAF Shared Libraries included in the application because one or more MAF Shared Library archive files have the same name and are configured to be included in the same archive destination directory.
アプリケーションレベルのデプロイメント・プロファイルが呼び出すプロジェクトレベルのFARデプロイメント・プロファイルは、生成されたデプロイメントJARのlib
ディレクトリに共有ライブラリJARをパッケージ化するため、デプロイメントが失敗します。これは、ViewController
プロジェクトのViewController_MobileFeatureArchive1.jar
です。MAFが同じファイル名を持つ2つの共有ライブラリJARを検出した場合、lib
ディレクトリの別の共有ライブラリJARで上書きせずに、デプロイメントを中止します。
前述のシナリオは、共有ライブラリの作成者が、最初に共有ライブラリを作成したり、デプロイメント・プロファイルを編集して、前述のデフォルト値以外のファイル名を生成する際に、アプリケーション・パッケージの接頭辞の値の一意の命名規則を採用していれば回避できました。使用するMAFアプリケーションのアプリケーション開発者は、プロジェクトレベルのFARデプロイメント・プロファイルを編集し、MAFが同じファイル名を持つ2番目の共有ライブラリJARをパッケージ化する2番目のディレクトリ(lib2
など)を作成することにより、この問題を回避し、アプリケーションを正常にデプロイできます。この構成の変更により、デプロイメントが正常に行われ、MAFは、プロジェクトレベルのデプロイメントJAR内の次のディレクトリ構造に2つの共有ライブラリJARをパッケージ化します。次の例では、ViewController
プロジェクトのAndroidへのデプロイメントが仮定されています。
ViewController_MobileFeatureArchive1.jar +---lib | | test_mobile_library_ViewControllerLibrary1.jar +---lib2 | | test_mobile_library_ViewControllerLibrary1.jar +---META-INF ... | \---public_html ...
ApplicationController
およびViewController
の2つのプロジェクトレベルのデプロイメント・プロファイルでこの構成の変更を実行します。
デプロイメント・プロファイルを編集する手順:
-
「アプリケーション」ウィンドウでプロジェクトをダブルクリックし、表示される「プロジェクト・プロパティ」ダイアログで「デプロイメント」ノードをダブルクリックします。
-
プロジェクトのデプロイメント・プロファイルを選択し、編集アイコンをクリックして、プロパティのダイアログを開きます。
デフォルト名は、
ProjectName
_MobileFeatureArchive1 (MAF Feature Archive)
です。 -
表示されるダイアログで「ファイル・グループ」ノードを選択し、「新規作成」をクリックします。
-
「ファイル・グループの作成」に
Libraries2
などの名前を入力し、「ライブラリ」ラジオ・ボタンを選択し、「OK」をクリックします。 -
新しく作成された
Libraries2
ファイル・グループで、「アーカイブのターゲット・ディレクトリ」プロパティを一意の値(lib2
など)に設定します。 -
「コントリビュータ」ノードの最初のライブラリのチェック・ボックスの選択を解除します。
-
最初のLibrariesファイル・グループの「コントリビュータ」ノードで、2番目のライブラリのチェック・ボックスの選択を解除します。
図30-11 ファイル名が重複した共有ライブラリ・アーカイブの2番目のファイル・グループ・ライブラリの定義の作成
「図30-11 ファイル名が重複した共有ライブラリ・アーカイブの2番目のファイル・グループ・ライブラリの定義の作成」の説明 -
「OK」をクリックしてダイアログを閉じ、MAFアプリケーションを再度デプロイする前に、「ビルド」→「すべてクリーンし、アプリケーションをリフレッシュ」をクリックします。
共有ライブラリでのCordovaプラグインの使用方法
デプロイされる共有ライブラリには、その共有ライブラリが使用するCordovaプラグインは含まれていません。共有ライブラリとは別にCordovaプラグインを取得し、それを使用するMAFアプリケーションに登録する必要があります。
MAFは、共有ライブラリのMETA-INF
ディレクトリのjar-maf-plugins.xml
ファイルのファイル名を使用して、maf-plugins.xml
ファイルの変更されたコピーをパッケージ化します。jar-maf-plugins.xml
ファイルのすべてのCordovaプラグインのpath属性を空の文字列に設定します。MAFアプリケーションが共有ライブラリを使用する場合、jar-maf-plugins.xml
ファイルの内容は、それを使用するMAFアプリケーションのmaf-plugin.xml
ファイルとマージされません。jar-maf-plugins.xml
ファイルを使用して、共有ライブラリが必要とするすべてのCordovaプラグインが、それを使用するMAFアプリケーションのmaf-plugins.xml
ファイルに登録されていることを確認します。
Cordovaプラグインの詳細は、「MAFアプリケーションでのプラグインの使用方法」を参照してください。