メインコンテンツまでスキップ

ファイルフォーマット

モジュールを取り扱う上で必要となるファイルのフォーマットを説明します。

XMLファイル​

XML によって定義された各ファイルを説明します。

定義フォーマットについて

以下のフォーマットに従い、XML ファイルの定義されたタグの詳細を示しています。

  • 概要:タグの持つ意味合いの概要を示します。
  • 制限:タグを定義する上で存在する制限。制限は以下のとおりです。
    • 必須:タグは対象のファイルないしは親タグを定義する場合、必ず必須となるタグであることを表します。
    • 複数指定可能:タグは、複数定義できることを表します。
    • 国際化対象:タグは、プレースホルダーを用いることで国際化対応を行うことが可能であることを表します。
  • 親タグ(タグ限定):タグが属する親タグを表します。
  • 所属タグ(属性限定):属性が属するタグを表します。
  • 備考:その他、必要に応じてタグの詳細を表します。

XMLファイル - 国際化​

XML ファイルにおいて、国際化対象とされたものはモジュールの仕組みの中で、プレースホルダーとそれを置換するメッセージプロパティファイルを利用することで実現されます。

XML の国際化対象タグ内に、 ${placeholder.key} というプレースホルダーを用いた場合、中括弧({})内に定義された placeholder.key に紐付く国際化メッセージの情報を、メッセージプロパティ内から取得し、置換します。

注意点として、国際化対象外のタグにこのプレースホルダーを利用しても、国際化処理(置換処理)は行われないということです。


モジュールメタデータ(module.xml)​

モジュールの識別情報や、依存関係等の情報を定義するメタデータファイルです。

構成要素​

モジュールメタデータを構成する各要素の詳細を説明します。

<module>​

  • 概要:モジュールメタデータのルートとなるタグです。
  • 制限:必須
  • 親タグ:無し

<id>​

  • 概要:モジュールを一意に表すためのユニークな文字列です。
  • 制限:必須
  • 親タグ:<module>
  • 備考:ドットで区切られた文字列により定義します。半角英数字、ハイフン(-)、アンダースコア(_)、ドット(.) が利用できます。

<version>​

  • 概要:モジュールのバージョニングを表すための文字列です。
  • 制限:必須
  • 親タグ:<module>

<type>​

  • 概要:このメタデータが紐付くモジュールの種別を示す文字列です。
  • 制限:必須
  • 親タグ:<module>
  • 備考:このタグには module を設定します。

<name>​

  • 概要:モジュールの名称を表すための文字列です。
  • 制限:国際化対象
  • 親タグ:<module>
  • 備考:このタグを省略した場合、デフォルトの値としてモジュールの名称は <id>@<version> というフォーマットの値が設定されます。

<vendor>​

  • 概要:モジュールの提供元を表すための文字列です。
  • 制限:国際化対象
  • 親タグ:<module>
  • 備考:このタグを省略した場合、デフォルトの値としてモジュールの提供元は空白(ブランク)が設定されます。

<description>​

  • 概要:モジュールの詳細を表すための文字列です。
  • 制限:国際化対象
  • 親タグ:<module>
  • 備考:このタグを省略した場合、デフォルトの値としてモジュールの詳細は空白(ブランク)が設定されます。

<tags>​

  • 概要:<tag> の親タグです。このタグの詳細は <tag> を参照してください。
  • 制限:なし
  • 親タグ:<module>

<tags> - <tag>​

  • 概要:モジュールの持つ特性を表すための文字列です。
  • 制限:必須 / 複数指定可能
  • 親タグ:<tags>
  • 備考:intra-mart は以下の2つの値を利用しています。
    • 3rd-party:サードパーティのライブラリを主としたモジュールであることを示すタグです。
    • immutable:変更を許可しないモジュールであることを示すタグです。

<dependencies>​

  • 概要:<dependency> の親タグです。このタグの詳細は <dependency> を参照してください。
  • 制限:無し
  • 親タグ:<module>

<dependencies> - <dependency>​

  • 概要:このモジュールが持つ依存情報を表すタグです。このタグの子タグを持って、依存情報の詳細を表します。
  • 制限:必須 / 複数指定可能
  • 親タグ:<dependencies>

<dependencies> - <dependency> - <module-id>​

  • 概要:このモジュールが依存するモジュールのIDを表す文字列です。
  • 制限:必須
  • 親タグ:<dependency>

<dependencies> - <dependency> - <verified-version>​

  • 概要:このモジュールが依存するモジュールのバージョンを表す文字列です。ここで指定されるバージョンは、このバージョンでの動作が検証済みなものが指定されることを想定しています。
  • 制限:必須
  • 親タグ:<dependency>

<dependencies> - <dependency> - <verified-version> : max​

  • 概要:このモジュールが依存するモジュールに対して、許容するバージョンの最大値を表す文字列です。
  • 制限:なし
  • 所属タグ:<verified-version>
  • 備考:この属性を省略した場合、デフォルトの値として verified-version の値が設定されます。

<dependencies> - <dependency> - <verified-version> : min​

  • 概要:このモジュールが依存するモジュールに対して、許容するバージョンの最小値を表す文字列です。
  • 制限:なし
  • 所属タグ:<verified-version>
  • 備考:この属性を省略した場合、デフォルトの値として verified-version の値が設定されます。

設定例(module.xml)​

<module xmlns="urn:intramart:jackling:module" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:conf="urn:intramart:jackling:toolkit:configurations"
xsi:schemaLocation="urn:intramart:jackling:module module.xsd"
conf:schemaLocation="urn:intramart:jackling:toolkit:configurations configurations.xsd">

<id>com.example.module.file</id>
<version>1.0.0</version>
<type>module</type>

<name>Module File</name>
<vendor>Example Inc.</vendor>
<description>This is Module File.</description>

<dependencies>
<dependency>
<module-id>jp.co.intra_mart.depend.on.module</module-id>
<verified-version min="1.0.0" max="3.0.0">2.0.0</verified-version>
</dependency>
</dependencies>
</module>

リポジトリ設定(settings.xml)​

parent / BOM および各モジュールは、intra-mart が提供する Maven リポジトリから取得されます。その参照設定は、プロジェクト直下に配置される settings.xml に定義されています。Accel CLI でプロジェクトを作成すると自動的に配置されるため、ユーザのホームディレクトリ配下(~/.m2/settings.xml 等)へ手動で設定を行う必要はありません。

<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>intra-mart</id>
<repositories>
<repository>
<id>intra-mart</id>
<url>https://maven.intra-mart.jp/</url>
</repository>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>intra-mart</id>
<url>https://maven.intra-mart.jp/</url>
</pluginRepository>
<pluginRepository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<pluginGroups>
<pluginGroup>jp.co.intra_mart.harness</pluginGroup>
</pluginGroups>
<activeProfiles>
<activeProfile>intra-mart</activeProfile>
</activeProfiles>
</settings>
  • intra-mart の Maven リポジトリ(https://maven.intra-mart.jp/)と Maven Central(https://repo.maven.apache.org/maven2/)を参照します。intra-mart リポジトリは匿名で利用できます。
  • ビルド時にはプロジェクト直下のこの settings.xml が利用されます。

親 POM(parent)​

Accel CLI で生成されるモジュールプロジェクトの pom.xml が継承する、intra-mart が提供する共通の親 POM です。Maven の POM(pom.xml)フォーマットに従います。Maven の標準要素で構成されます。

生成された pom.xml には、以下のように親 POM が指定されています。

<parent>
<groupId>jp.co.intra_mart</groupId>
<artifactId>parent</artifactId>
<version>8.0.6-2026-spring</version>
</parent>
  • <groupId> / <artifactId> は固定です(jp.co.intra_mart:parent)。
  • <version> の suffix(例: 2026-spring)が、対応する iAP のアップデートリリースを表します。

識別情報(GAV)​

要素値
groupIdjp.co.intra_mart(固定)
artifactIdparent(固定)
packagingpom
version8.0.x-{リリース修飾子}(例: 8.0.6-2026-spring)

構成要素​

  • <dependencyManagement>
    • モジュールバージョン管理 BOM(im_bom)を <scope>import</scope> で取り込み、intra-mart Accel Platform を構成するモジュールのバージョンを一元管理します。
    • ビルド共通プロパティ(ソースエンコーディング等)を定義します。
  • <build><plugins>
    • モジュールビルドに必要な共通プラグイン(lifecycle-plugin、build-helper-maven-plugin、maven-source-plugin、maven-compiler-plugin 等)を定義します。

設定例(parent)​

<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
<modelVersion>4.0.0</modelVersion>

<groupId>jp.co.intra_mart</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>8.0.6-2026-spring</version>

<dependencyManagement>
<dependencies>
<!-- モジュールのバージョン管理(im_bom を import) -->
<dependency>
<groupId>jp.co.intra_mart</groupId>
<artifactId>im_bom</artifactId>
<version>8.0.0-2026-spring</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
<plugins>
<!-- lifecycle-plugin / build-helper / source / compiler / jacoco 等 -->
</plugins>
</build>
</project>

バージョン体系と更新​

  • <version> の修飾子(例: 2026-spring)が、対応する iAP のアップデートリリースを表します。利用者は自プロジェクトの pom.xml の <parent><version> の修飾子を差し替えることで、依存する intra-mart モジュール群のバージョンをまとめて更新します。
  • <groupId> / <artifactId>(jp.co.intra_mart:parent)は固定です。

モジュールバージョン管理 BOM(im_bom)​

intra-mart Accel Platform を構成するモジュールのバージョンを一元的に定義する BOM(Bill of Materials)です。Maven の POM フォーマットに従い、原則として <dependencyManagement> のみを持ちます。親 POM(parent)から import スコープで取り込まれます。

識別情報(GAV)​

要素値
groupIdjp.co.intra_mart(固定)
artifactIdim_bom(固定)
packagingpom
version8.0.0-{リリース修飾子}(例: 8.0.0-2026-spring)

構成要素​

  • <dependencyManagement><dependencies>
    • iAP を構成する各モジュール(jp.co.intra_mart:* 等)の groupId / artifactId / version を列挙します。
    • ここで管理されるバージョンにより、利用者は pom.xml の依存に <version> を記述せずに intra-mart モジュールを参照できます(BOM がバージョンを解決します)。

設定例(im_bom)​

<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
<modelVersion>4.0.0</modelVersion>
<groupId>jp.co.intra_mart</groupId>
<artifactId>im_bom</artifactId>
<packaging>pom</packaging>
<version>8.0.0-2026-spring</version>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>jp.co.intra_mart</groupId>
<artifactId>im_workflow</artifactId>
<version>8.0.39</version>
</dependency>
<dependency>
<groupId>jp.co.intra_mart</groupId>
<artifactId>im_jssp</artifactId>
<version>8.0.26</version>
</dependency>
<!-- ... iAP を構成するモジュールを列挙 ... -->
</dependencies>
</dependencyManagement>
</project>

バージョン体系と更新​

  • <version> の修飾子が iAP のアップデートリリースに対応します。リリースごとに、収録モジュールとそのバージョンが更新されます。
  • 利用者は im_bom を直接参照することなく、parent を経由して取り込まれるため、parent の <version> を更新すれば im_bom も追従します。