MPS 2020.3 ヘルプ

言語のためのスタンドアロン IDE を構築する

導入

スタンドアロン IDE という用語は、特定のビジネス目的に必要なアーティファクトのみを含む、IDE の簡略版を指します。スタンドアロン IDE はエンドユーザーに DSL を配布する便利な方法を提供します。エンドユーザーは、IDE 設計者が用意した IDE サポート、リファクタリング、コード分析を含む言語を、専用の IDE で快適に使用できます。気になる言語設計関連の機能や不要な言語はすべて削除されます。

言語を設計したら、MPS を使用すると、これらのドメイン固有の言語を使用するために必要なアーティファクトのみを含む MPS の簡易バージョンを構築できます。MPS のさまざまな側面を削除またはカスタマイズして、特定のユーザーグループにカスタムのユーザーエクスペリエンスを提供できます。この記事ではその方法について説明します。

特に、MPS の以下の側面をカスタマイズできます。

  • さまざまなアイコン、スローガン、スプラッシュスクリーン、イメージ

  • ヘルプ URL

  • ユーザーが利用できる一連の言語

  • MPS で利用可能なプラグインのセット

プロセスの概要

MPS のカスタム RCP バージョンをビルドするには、いわゆるビルドスクリプトを含むソリューションを作成する必要があります。ビルドスクリプトは MPS のビルド言語で記述されており、RCP アプリケーション(および IntelliJ および MPS プラグイン)のビルド用に最適化されています。このビルドスクリプトのジェネレーターを実行すると、MPS は実際の RCP ディストリビューションを作成する ant ファイルを生成します。

サンプル RCP ビルドの構築

このドキュメントでは、MPS ディストリビューションにバンドルされているロボット Kaja サンプル用の RCP ビルドスクリプトの開発について説明します。MPS でプロジェクトを開き、ここで説明されている手順に従うことができます。

ソリューションとビルドスクリプトの作成

ウィザードの方法

必要なビルドスクリプトを作成するための望ましい方法は、現在のプロジェクトでソリューション構築ウィザードを実行することです。プロジェクトビューツールウィンドウから起動します。

Build1

ウィザードは、スクリプトを保持し、必要なインポートと使用言語を設定するための新しいソリューションとモデルを作成します。新しいソリューションを作成する代わりに、既存のソリューションまたはモデルを再利用するようにウィザードに指示できます。

Build2
Build3

次に、3 つの使用可能なオプションからスタンドアロン IDE オプションを選択する必要があります。

Build5

ウィザードの最後のページで、IDE の一部にしないモジュールを選択解除します。通常、サンドボックスモジュールをスキップして、言語とプラグインおよびランタイムソリューションを保持します。

Build6standalone

新しいソリューションがプロジェクトビューにリストされ、2 つの新しいビルドスクリプトが保持されます。

Sa4

依存関係も正しく設定されています。

Sa5

Sa6

手動による方法

あるいは、手動でスクリプトを作成することもできます。内部に新しいモデルを使用して新しいソリューションを作成する必要があります。モデルで、使用言語を設定します

  • jetbrains.mps.build

  • jetbrains.mps.build.mps

また、jetbrains.mps.ide.build モデルをインポートします。これで、モデルに新しいビルドプロジェクトを作成できます(名前はわかりにくいです。実際には新しいビルドプロジェクトではなく、ビルドスクリプトだけです)。

Sa7

ビルドスクリプトの調査

ビルドスクリプトにはいくつかのセクションが含まれています。これらのセクションは、空のビルドスクリプトで確認できます。

Sa15

ビルドスクリプトのさまざまなセクションを見てみましょう。

  • ベースディレクトリベースディレクトリは、他のすべてのパスが指定される相対パスを定義します。デフォルトでは、これは、結果の ant ファイルが生成され、実行されるディレクトリです。

  • プラグインを使用するビルド言語自体はプラグインを介して拡張できます(これらは MPS 自体を構成するプラグインではないことに注意してください。これらは後で構成されます)。これらのプラグインは、追加のビルド言語構文に貢献します。通常、java および mps プラグインが必要です。以下では、これらのプラグインによって提供される構文を使用します。

  • マクロマクロは基本的に名前と値のペアです。マクロセクションでは、これらの名前が定義され、値が割り当てられます。ビルドスクリプトの残りの部分では、これらのマクロ変数が使用されます。MPS は、マクロの 2 種類をサポートしています。var マクロは文字列であり、任意の値を割り当てることができます。フォルダーは、上記で定義された、/ または他のマクロに基づいたベースディレクトリを基準にしたパスを表します。MPS は、フォルダーマクロのパスコンポーネントにコード補完を提供することに注意してください。

  • 依存関係このセクションでは、他のビルドスクリプトへの依存関係を定義します。MPS は、ビルドスクリプト(たとえば buildStandalone、buildWorkbench または buildMPS)のセットがバンドルされています。それらのいずれかへの依存関係を確立することにより、その参照ビルドスクリプトで定義された構造を、参照ビルドスクリプトで使用できます。例: 参照されているビルドスクリプトで定義されているマクロを使用できます。

  • プロジェクト構造このセクションでは、構築する RCP アプリケーションの実際の内容を定義します。このようなコンテンツには、MPS モジュール(言語、ソリューション、開発キット)、Java ライブラリ、IDEA ブランディング、プラグインなどがあります。

  • デフォルトのレイアウトこのセクションでは、出力されるファイルを定義し、新しい RCP ディストリビューションのディレクトリ、ファイル、JAR 構造を作成します。これは、プロジェクト構造セクションおよびこれが依存する他のビルドスクリプトで定義されたアーティファクトを参照して含みます。

ウィザードは 2 つのビルドスクリプトを作成しました。それぞれが別々の目的を果たします。

  1. Kajak- モジュールを生成し、生成されたソースをコンパイルして、IDEA プラグインにパッケージ化します (IntelliJ IDEA プラットフォーム用のプラグイン)

  2. KajakDistribution - カジャックによって作成されたアーティファクトからプラットフォーム固有のディストリビューションを作成します

ビルドスクリプトを編集する

最初にカジャックビルドスクリプトに注目しましょう。

生成されたビルドスクリプトの名前

各 MPS ビルドスクリプトから生成する ant xml ファイルのデフォルト名は build.xml です。複数のビルドスクリプト間の衝突を避けるために、名前を変更することをお勧めします。

Sa8

Sa9

ベースディレクトリ

ビルドスクリプトが生成されるディレクトリを指定します。

プラグインを使う

ビルド言語は、その機能をプラグインにパッケージ化しています。ビルドスクリプトで使用されるプラグインは、その使用プラグインセクションにリストされています。

  • java -Java ソースをコンパイルする機能が含まれています

  • mps -MPS モデルを生成する機能が含まれています

  • module-tests - ビルドスクリプトでテストを実行する機能を追加します (jetbrains.mps.build.mps.tests 言語をインポートする必要があります)

ウィザードには、javamp が事前に設定されています。

マクロ

スクリプト全体で再利用するために、いくつかのマクロを定義する必要があります。最初の 2 つは、ビルドで使用する文字列変数を表します。フォルダーのセットは、MPS 自体のディレクトリと、MPS バンドル言語が保存されている 2 つのルートディレクトリを表します。これらの言語は RCP ディストリビューションの一部になります。これらのすべてのフォルダーがベースディレクトリに相対的であることに注意してください。

macros: var date = date 20150422  var build.number = Kajak-139.SNAPSHOT  var version.major = 2020 var version.minor = 2 var version.bugfixNr = <empty> var version.eap = EAP folder mps_home = ./../../../../Applications/MPS 3.2.app/Contents

マクロを未定義のままにして(つまり、名前を指定するだけで)、プロジェクト設定ダイアログの MPS パス変数セクションで定義するか、プロパティ定義を使用して ant を呼び出すときに定義できることに注意してください。

ant -Dsome.variable=a.value

依存関係

次に、依存関係を定義します。依存関係は、このスクリプトが他のどのビルドスクリプトおよびプラットフォームに依存しているかを示します。

mpsStandalone (スタンドアロン MPS インストールの最小セットを表す)への依存関係が必要です。オプションで、スタンドアロン IDE でビルドスクリプトを作成できる mpsMakePlugin 、mpsDebuggerPlugin (ロボット Kaja サンプルにはデバッガーと Java 実行の統合が必要なため)および mps ExecutionPlugin( 1 つは、ロボット Kaja サンプル言語が実行フレームワークを使用して外部実行可能ファイルを実行することです。ほとんどの RCP は、mps スタンドアロンを使用する可能性があります。

dependencies: mpsStandalone (artifacts location $mps_home) mpsMakePlugin (artifacts location $mps_home/plugins)   mpsDebuggerPlugin (artifacts location $mps_home/plugins) mpsExecutionPlugin (artifacts location $mps_home/plugins)

アーティファクトの場所は、アーティファクトのコピー元を指定します。ビルドスクリプトは、既存の MPS インストールからコードをコピーすることで機能するため、MPS ソースをチェックアウトする必要はありません。アーティファクトの場所は MPS ホームディレクトリを指している必要があります。

プロジェクト構造

プラグインの使用セクションで指定されたプラグインは、ここで使用可能なオプションに影響を与えます。javamps、および module-tests プラグインを有効にすると、次のプラグインが得られます。

  • ジェネレーターオプション - ジェネレーターを構成します

  • アイデアのブランディング - アイコン、スプラッシュスクリーン、URL、イメージなど、スタンドアロン IDE の視覚的側面を構成します

  • アイデアプラグイン - 生成されたアーティファクトを基盤となる IntelliJ IDEA プラットフォームにフックするための情報を詳しく説明します

  • Java ライブラリ - それらがユニットとして参照されることができるように jar とクラスをグループ化します

  • Java モジュール - Java ソースをグループ化して、それらが 1 つのユニットと呼ばれるようにする

  • Java オプション - java コンパイラープロセスを設定します

  • mps group -MPS モジュール(ソリューション、言語、開発キット)をグループ化して、ユニットと呼ぶことができるようにします

  • ソリューション - ソリューションを表します

  • 言語 - 言語を表します

  • devkit-devkit を表します

プロジェクト構造では、ブランディングから始めます。アイデアブランディングセクションは、あらゆる種類のアイコン、スプラッシュ画面などの定義をサポートしています。サイズと透明度の値を維持しながら、MPS ディストリビューションから取得し、ニーズに合わせてイメージを変更することをお勧めします。Version プロパティが構造化された値を保持していることに注意してください。ヘルプファイルと更新 Web サイトを指定することもできます。

idea branding Kajak    codename Kajak    company <no company>  Version ${version.major}.${version.minor} ${version.bugfixNr} ${version.eap} codename (optional) <empty>   full name Kajak    build number ${build.number}, date ${date}    icons      16x16 ./icons/MPS16.png      32x32 ./icons/MPS32.png      32x32 opaque ./icons/MPS32.png      128x128 <no icon128>    splash screen ./icons/splash.png textcolor 002387    about screen ./icons/about.png    dialog image ./icons/dialogImage.png    welcome screen      caption ./icons/caption.png      slogan ./icons/slogan.png      logo ./icons/logo.png    <no updateWebsite>    plugins <no plugins>    whats new <no whatsnew>    <no stats>    <no help>    feedback url <no feedbackUrl> 

サンプルでは、MPS アイコンを ./icons フォルダーにコピーし、名前を変更せずにそれに応じて変更しました。これが、ほとんどのアイコンが mps で始まる理由です。

次に、バンドルする言語とソリューションを含むアイデアプラグインを定義します。アイデアプラグインは、MPS が構築されている IDEA プラットフォームへのプラグインです。

idea plugin Kajak    name Kajak    short (folder) name Kajak    description <no description>    version 1.0    << no vendor >>    content:      Kajak    dependencies:      jetbrains.mps.core    << ... >> 

名前とバージョン、他のプラグインへの依存関係、および実際のコンテンツを定義できます。RCP に言語が含まれている場合は常に、BaseConceptINamedConcept インターフェースなどを提供するため、jetbrains.mps.core が必要になります。コンテンツのカヤックエントリは、以下に定義されている mps グループへの参照です。 mps グループは、MPS アーティファクトのグループです。(ビルドスクリプトの最上部に)mps プラグインが含まれているため、MPS 固有の言語構造を使用できます。mps グループはその一例です。

カヤックグループを見てみましょう。これは、一連の言語とソリューションを参照します。言語参照は、MPS プロジェクトで定義された言語を指します。グループ内の言語参照は、名前(実際の言語の名前と同じである必要があります)とそれぞれの mpl ファイルへのポインターで構成されます。入力する最も簡単な方法は、mpl ファイルへのパスから始めて、ファイルインテンション(Alt+Enter)から必要な情報をロードして参照の名前を調整することです。

mps group Kajak    solution jetbrains.mps.samples.JavaKaja      load from ./solutions/JavaKajak/JavaKajak.msd        language jetbrains.mps.samples.KajaAndOr      load from ./languages/KajaAndOr/KajaAndOr.mpl        language jetbrains.mps.samples.Kaja      load from ./languages/Kajak/Kajak.mpl        language jetbrains.mps.samples.KajaSceneConstruction      load from ./languages/KajaSceneConstruction/KajaSceneConstruction.mpl 

グループには、すべての言語の推移閉包が含まれている必要があることに注意してください。例: 別の言語 B を参照する言語 A を参照している場合は、B もグループに含める必要があります。そうしないと、依存関係を解決できなかったために結果の RCP アプリケーションが実行されないため、これは理にかなっています。言語が欠落している場合は、ビルドスクリプトでエラーが報告されます(赤い波線)。必要な言語を追加した後、何かが変更されたことを「通知」するために、エラーのある言語でファイルインテンション(Alt+Enter)から必要な情報のロードを再実行する必要がある場合があります。

言語に加えて、ソリューション構成要素を使用してソリューションを参照したり、devkit 構成要素を使用して devkit を参照したりすることもできます。

デフォルトレイアウト

レイアウトは RCP ディストリビューション物のディレクトリとファイル構造を構成します。さまざまなソースから、特に前のセクションで説明したプロジェクト構造からファイルをコピーします。また、必要に応じてこれらのファイルをコンパイル、構築、パッケージ化します。このスクリプトが依存する他のビルドスクリプトで定義されているアーティファクトも参照できます。次のコードから始めます。

default layout: import mpsStandalone::languages import mpsStandalone::license

インポートされたこれら 2 つは、参照されている mpsStandalone ビルドスクリプトのフォルダー要素です。インポートすることにより、これらのフォルダーの内容が RCP ディストリビューションにインポート(つまりコピー)されます。

ウィザードには、bin フォルダーを作成し、共通の構成ファイルとプロパティファイルをそのフォルダーにコピーするコードが追加されています。さらにカスタマイズすることも、そのままにしておくこともできます。

folder bin import files from mpsStandalone::bin include log.xml include log4j.dtd file $mps_home/bin/idea.properties replace regex "\.MPS(\w+)" /g -> \.${build.number}

次に、新しいフォルダー lib を作成します。このフォルダーには、MPS ソースと既存の branding.jar (デフォルトの MPS スプラッシュ画面などを含む)を除くすべてのものを mpsStandalone::lib からインポートします。次に、新しい jar ファイル branding.jar を作成します(この名前が機能する必要があります。IDEA プラットフォームはこの名前を想定しています)。このファイルに、上記で定義したプロジェクト構造のブランディングセクションで定義されたすべてのファイルを配置します。

folder lib import files from buildStandalone::lib exclude MPS-src.zip exclude branding.jar jar branding.jar files of idea branding Kajak

次に、フォルダープラグインを作成します。mps-core プラグインはすべての RCP アプリに必要であるため、いずれの場合もインポートする必要があります。次に、mpsStandalone ビルドスクリプトで定義されているさまざまなバージョン管理プラグイン(CVS、SVN anf git)をインポートします。明らかな理由から、スタンドアロンの Kaja IDE にはバージョン管理のサポートが必要なので、これらのプラグインをインポートすることは理にかなっています。最後に、Kaja は MPS デバッガーとも統合されているため、デバッガープラグインを含めます。

folder plugins import mpsStandalone::plugins/svn4idea  import mpsStandalone::plugins/cvsIntegration  import mpsStandalone::plugins/git4idea  import mpsStandalone::plugins/mps-core import mpsDebuggerPlugin::plugins/mps-debugger-api

次に、前にプロジェクト構造で定義された Kajak プラグインを統合します。プラグイン構成要素を使用して、前に定義したプラグインの完全な定義をインポートできます。

plugin Kajak    <empty> 

プラグイン内で、さまざまなライブラリ jar を含むサブディレクトリをさらに定義します。これらの jar ファイルは、プラグインのクラスパスに自動的に表示されます。ファイル構成を使用して、前に定義したマクロを使用して、さまざまなファイルをプラグインディレクトリにコピーします。

plugin Kajak    folder libs      file ./solutions/JavaKajak/images/kaja_images.jar  ...

このプラグインには、コピーした jar だけでなく、必要なすべての言語アーティファクトも含まれていることに注意してください。これは、これらの mps グループを定義し、プラグインから参照することで実現されています。これらの mps グループを使用できるのは、mps ビルド言語プラグインのおかげです。MPS アーティファクトを直接サポートし、必要なすべてのファイルとメタデータが自動的に処理されます。

mps-make をインポートすることもできます。

# optional plugins import mpsMakePlugin::mps-make

プロパティファイル

最後に、実行中の RCP アプリケーションで使用される一連のメタデータを含む build.number というプロパティファイルを作成します。基盤となる IntelliJ プラットフォームで必要です。

properties file build.number build.number = ${build.number} date = ${date} version = 1.0

プラットフォーム固有のディストリビューションの作成

この時点で、生成されたディレクトリ構造は、カスタムブランディングを含む、構成したすべてのアーティファクトを含む MPS ディストリビューションのプラットフォームの独立したコアを構成します。ただし、プラットフォーム固有の側面がまだ不足しているため、実行することはできません。

2 番目に生成されたビルドスクリプト - KajakDistribution を見てみましょう。

build KajakDistribution generates buildDistribution.xml    base directory: ../../               use plugins:    << ... >>    macros:    folder mps_home = ./../../work/MPS 3.2   var version = 1.0    dependencies:    Kajak    project structure:    << ... >>    default layout:    tar ${build.number}-linux.tar.gz (compression gzip)      folder Kajak ${version}        import files from Kajak::/          <any>        folder bin          file $mps_home/bin/linux/fsnotifier (755)          file $mps_home/bin/linux/fsnotifier64 (755)          file $mps_home/bin/mps.vmoptions (644)            fix eol: convert to a single LF, remove eof (Ctrl-Z): true          file $mps_home/bin/mps64.vmoptions (644)            fix eol: convert to a single LF, remove eof (Ctrl-Z): true         files from $mps_home/bin/linux            exclude **/fsnotifier            exclude **/fsnotifier64                  file $mps_home/mps.sh (755)          fix eol: convert to a single LF, remove eof (Ctrl-Z): true            zip ${build.number}.zip  ...

ビルドスクリプトはカジャックに依存しているため、プラットフォームに依存しないアーティファクトをプラットフォーム固有のディストリビューションに適切にパッケージ化できます。単一のプラットフォーム(MacOS、Linux、または Windows)を対象とするディストリビューションでは、他のプラットフォームで必要なアーティファクトが見落とされるため、mps_home マクロは一般的な MPS インストールを指します。一般的なディストリビューションは、MPS Web サイトからダウンロードすることもできます。

Windows ディストリビューションを作成する

ビルドスクリプトによって生成される Windows 固有のディストリビューションはありません。生成されたスタンドアロン IDE を Windows で実行するには、生成された汎用 zip ファイルを使用し、win ディレクトリの内容を bin ディレクトリにコピーし、mps.bat ファイルを使用して IDE を起動する必要があります。

Sa14

ヒントとコツ

MPS 上に構築されたすべてのスタンドアロン IDE は、ユーザーがツールに慣れるのに役立つ便利なヒントを含むヒントとテクニックダイアログをユーザーに提供できます。

Blxx6

MPS のヒントとコツの内容はカスタマイズできます。これは、新しいビルドスクリプトのヒントとトリックの概念を使用して実行できます。

Blxx7

ヒントは、MPS 一般ディストリビューション物から再利用することも、ディレクトリまたはソリューションからインポートすることもできます。

Blxx8

  • 最初のオプションは、ディストリビューションにすべての MPS のヒントを追加するだけです。これは、ビルドスクリプトウィザードで生成されたビルドスクリプトのデフォルトオプションです。

  • 2 つ目は、正しいヒントの構造を持つ手動で作成されたフォルダーを必要とします。目的の構造は、mps-tips.jar ファイル自体から取得できます。すべての HTML ファイルに加えて css と image フォルダーを含むフォルダーを必要とします。

  • 最後のオプションでは、MPS 自体の jetbrains.mps.build.tips および jetbrains.mps.core.xml 言語を使用してヒントを定義できます。

最後に、ヒントをビルドスクリプトレイアウトの lib フォルダーにパッケージ化する必要があります。ウィザードで生成されたビルドスクリプトでは、MPS のヒントとコツがデフォルトで lib フォルダーにパッケージ化されています。

Blxx9

ヒントとコツの言語

ソリューションからヒントとコツをインポートするには、モデルを使用してソリューションを作成し、モデルの使用言語に言語 jetbrains.mps.build.tipsjetbrains.mps.core.xml を追加します。その後、MPSTipsAndTricks の概念のインスタンスを作成して、そこに複数のヒントを作成することができます。各ヒントは HTML 形式のテキストです。各ヒントに 1 つのイメージを追加できます。

Blxx10

ソリューションからビルドスクリプトヒントとコツへのインポートは、ソリューションと MPSTipsAndTricks の概念から生成された xml を指すことによって行われます。

Blxx11

最後の Robot Kaja IDE 構築スクリプト

カジャック

build Kajak generates myBuild.xml    base directory: ../../                   use plugins:    java    mps    macros:    var date = date 20150422    var build.number = Kajak-139.SNAPSHOT    folder mps_home = ./../../../../Applications/MPS 3.2.app/Contents    dependencies:    mpsStandalone (artifacts location $mps_home)    mpsMakePlugin (artifacts location $mps_home/plugins)    project structure:    idea branding Kajak      codename Kajak      company <no company>      version 1.0, eap false      full name Kajak      build number ${build.number}, date ${date}      icons        16x16 ./icons/MPS16.png        32x32 ./icons/MPS32.png        32x32 opaque ./icons/MPS32.png        128x128 <no icon128>      splash screen ./icons/splash.png textcolor 002387      about screen ./icons/about.png      dialog image ./icons/dialogImage.png      welcome screen        caption ./icons/caption.png        slogan ./icons/slogan.png        logo ./icons/logo.png      <no updateWebsite>      plugins <no plugins>      whats new <no whatsnew>      <no stats>      <no help>      feedback url <no feedbackUrl>        idea plugin Kajak      name Kajak      short (folder) name Kajak      description <no description>      version 1.0      << no vendor >>      content:        Kajak      dependencies:        jetbrains.mps.core      << ... >>          mps group Kajak      solution jetbrains.mps.samples.JavaKaja        load from ./solutions/JavaKajak/JavaKajak.msd            language jetbrains.mps.samples.KajaAndOr        load from ./languages/KajaAndOr/KajaAndOr.mpl            language jetbrains.mps.samples.Kaja        load from ./languages/Kajak/Kajak.mpl            language jetbrains.mps.samples.KajaSceneConstruction        load from ./languages/KajaSceneConstruction/KajaSceneConstruction.mpl            default layout:    import mpsStandalone::languages    import mpsStandalone::license    folder bin      import files from mpsStandalone::bin        include log.xml        include log4j.dtd      file $mps_home/bin/idea.properties        replace regex "\.MPS(\w+)" /g -> \.${build.number}          folder lib      import files from mpsStandalone::lib        exclude MPS-src.zip        exclude branding.jar      jar branding.jar        files of idea branding Kajak            folder plugins      import mpsStandalone::plugins/svn4idea      import mpsStandalone::plugins/cvsIntegration      import mpsStandalone::plugins/git4idea      import mpsStandalone::plugins/mps-core      plugin Kajak        folder libs          file ./solutions/JavaKajak/images/kaja_images.jar                # optional plugins      import mpsMakePlugin::mps-make          properties file build.number      build.number = ${build.number}      date = ${date}      version = 1.0          <<additional aspects>>

KajakDistribution

build KajakDistribution generates buildDistribution.xml base directory: ../../ use plugins: << ... >> macros: folder mps_home = ./../../work/MPS 3.2 var version = 1.0 dependencies: Kajak project structure: << ... >> default layout: tar ${build.number}-linux.tar.gz (compression gzip) folder Kajak ${version} import files from Kajak::/ <any> folder bin file $mps_home/bin/linux/fsnotifier (755) file $mps_home/bin/linux/fsnotifier64 (755) file $mps_home/bin/mps.vmoptions (644) fix eol: convert to a single LF, remove eof (Ctrl-Z): true file $mps_home/bin/mps64.vmoptions (644) fix eol: convert to a single LF, remove eof (Ctrl-Z): true files from $mps_home/bin/linux exclude **/fsnotifier exclude **/fsnotifier64 file $mps_home/mps.sh (755) fix eol: convert to a single LF, remove eof (Ctrl-Z): true zip ${build.number}.zip folder Kajak ${version} import files from Kajak::/ <any> folder bin file $mps_home/bin/mps.vmoptions (644) file $mps_home/bin/mps64.vmoptions (644) file $mps_home/bin/mps.exe.vmoptions (644) file $mps_home/bin/mps64.exe.vmoptions (644) folder win files from $mps_home/bin/win exclude **/*.exe filemode folders: <default (755)>, files: 755 files from $mps_home/bin/win include **/*.exe folder linux files from $mps_home/bin/linux exclude **/fsnotifier exclude **/fsnotifier64 file $mps_home/bin/linux/fsnotifier (755) file $mps_home/bin/linux/fsnotifier64 (755) folder nix filemode folders: <default (755)>, files: 755 files from $mps_home/bin/nix folder mac file $mps_home/bin/mac/libbreakgen.jnilib (644) file $mps_home/bin/mac/libbreakgen64.jnilib (644) file $mps_home/bin/mac/restarter (755) file $mps_home/bin/mac/fsnotifier (755) folder Contents folder Resources file $mps_home/bin/mac/Contents/Resources/mps.icns (644) folder MacOS file $mps_home/bin/mac/Contents/MacOS/mps (755) file $mps_home/bin/mac/Contents/Info.plist (644) file $mps_home/mps.sh (755) file $mps_home/mps.bat (755) zip ${build.number}-macos.zip folder Kajak ${version}.app folder Contents import files from Kajak::/ <any> folder Resources file $mps_home/bin/mac/Contents/Resources/mps.icns (644) folder MacOS file $mps_home/bin/mac/Contents/MacOS/mps (755) file $mps_home/bin/mac/Contents/Info.plist (644) folder bin file $mps_home/bin/mac/libbreakgen.jnilib (644) file $mps_home/bin/mac/libbreakgen64.jnilib (644) file $mps_home/bin/mac/restarter (755) file $mps_home/bin/mac/fsnotifier (755) file $mps_home/bin/mps.vmoptions (644) fix eol: convert to a single LF, remove eof (Ctrl-Z): true file $mps_home/bin/mps64.vmoptions (644) fix eol: convert to a single LF, remove eof (Ctrl-Z): true file $mps_home/mps.sh (755) fix eol: convert to a single LF, remove eof (Ctrl-Z): true <<additional aspects>>

ビルドスクリプトの生成と実行

ビルドスクリプトにエラーがないと仮定すると、エラーを生成できます(モデルの再構築または Ctrl-F9)。これにより、各ビルドスクリプトの上部で定義されている名前が設定された 2 つの ant ファイルが作成されます。

build Kajak generates myBuild.xml

この myBuild.xml (この場合)は、プロジェクトディレクトリに直接存在します。ファイルは、コマンドラインから( ant -buildfile myBuild.xml を使用して)実行することも、MPS 内から直接(プロジェクトエクスプローラーのビルドスクリプトのコンテキストメニューを介して)実行することもできます。

Sa10

生成されたディレクトリ構造の確認

両方のビルドスクリプトを実行します。次の図は、ビルドスクリプトを実行した後のプロジェクト構造を示しています。特に、build/artifacts ディレクトリ内には、ビルドスクリプトのデフォルトのレイアウトセクションで定義された構造が作成されています。

Sa13

Sa12

ディレクトリとファイル構造を参照して、表示されているものをビルドスクリプトの定義に接続することをお勧めします。