モジュールのメタデータ

では、METADATA.moduleの内容がどうなるかを見てみよう。 METADATA.moduleに記述する内容は以下のようなものだ。

  • name: モジュールの名称。jp.co.mycom.journal.exampleのように、完全修飾名であることが望ましい
  • extensible-metadata: バージョン、mainクラス名、アトリビュート、エクスポートするリソースのリストなど
  • imports: このモジュールと依存関係にあり、インポートする必要のあるモジュールのリスト
  • class-exports: モジュール外からのアクセスを可能にするため、エクスポートするクラスのリスト
  • members: モジュールのメンバーに属するクラスのリスト

以下の例を見てもらえば一目瞭然だろう。

(
   name=com.wombat.webservice
   extensible-metadata=[@Version("1.0")]
   imports=
      [ImportModule(org.foo.xml, @VersionConstraint("1.3.0")),
       ImportModule(org.foo.soap, @VersionConstraint("2.0.0+"))]
   class-exports=[com.wombat.webservice.MainApp]
   members=
      [com.wombat.webservice.MainApp,
       com.wombat.webservice.PrivateClassA,
       com.wombat.webservice.PrivateInterfaceB]
)