MPS 2019.2ヘルプ

言語のためのスタンドアロン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でプロジェクトを開き、ここで説明されている手順に従うことができます。

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

ウィザードの方法

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

sa1

ウィザードは、スクリプトを保持し、必要なインポートと使用言語を設定するための新しいソリューションとモデルを作成します。新しいソリューションを作成するのではなく、既存のソリューションまたはモデルを再利用するようにウィザードに指示することができます。その後、スタンドアロンIDEオプションを選択する必要があります。

sa2

sa3

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

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

sa4

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

sa5

sa6

手動による方法

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

  • jetbrains.mps.build
  • jetbrains.mps.build.mps

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

sa7

ビルドスクリプトの調査

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

sa15

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

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

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

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

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

  • プロジェクト構造このセクションでは、構築するRCPアプリケーションの実際の内容を定義します。そのようなコンテンツはMPSモジュール(言語、ソリューション、devkits)、Javaライブラリー、IDEAブランディングおよびプラグインかもしれません。

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

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

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

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

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

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

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

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

sa8

sa9

ベース・ディレクトリー

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

プラグインを使う

ビルド言語はその機能をプラグインにまとめました。構築スクリプトで使用されているプラグインは、そのuse pluginsセクションにリストされています

  • java - Javaソースをコンパイルする機能を含みます

  • mps - MPSモデルを生成する機能を含みます

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

ウィザードはすでにjavampsを設定しています。

マクロ

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

macros: var date = date 20150422  var build.number = Kajak-139.SNAPSHOT  folder mps_home = ./../../../../Applications/MPS 3.2.app/Contents

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

ant -Dsome.variable=a.value

依存関係

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

ので(mpsStandaloneへの依存関係を必要とする(それがスタンドアロンMPSインストールの最小セットを表します)と、必要に応じてもmpsMakePlugin(ロボット冠者サンプルはデバッガおよびJava実行統合を必要とするため)、スタンドアロンのIDE、mpsDebuggerPluginでスクリプトを作成作成可能にするとExecutionPluginをMPSロボット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ホームディレクトリーを指している必要があります。

プロジェクト構造

use pluginsセクションで指定されたプラグインは、ここで利用可能なオプションに影響します。javampsmodule-testsプラグインを有効にすると、次のようになります。

  • ジェネレータオプション - ジェネレータを設定する

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

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

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

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

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

  • mps group - MPSモジュール(ソリューション、言語、devkits)をユニットとして参照できるようにグループ化する

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

  • language - 言語を表する

  • devkit - devkitを表する

プロジェクト構造では、ブランディングから始めます。アイデアブランディングセクションは、あらゆる種類のアイコン、スプラッシュスクリーンなどの定義をサポートします。サイズと透明度の値を維持しながら、MPSディストリビューションから取り出して、ニーズに合わせて写真を変更することをお勧めします。ヘルプファイルとアップデートWebサイトを指定することもできます。

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> 

サンプルでは、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から必要な情報をロードし直す必要がある場合があります

言語に加えて、また、開発キットの構築物でソリューション構築物およびdevkitsと解決策を参照することができます。

デフォルト・レイアウト

レイアウトは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}

次に、MPSソースと既存のbranding.jar(デフォルトのMPSスプラッシュスクリーンなどを含む)を除いて、mpsStandalone::libからからすべてのものをインポートする新しいフォルダー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および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番目に生成されたビルドスクリプト - カジャック配給を見てみましょう。

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ディストリビューションを作成する

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

sa14

ヒントとコツ

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

blxx6

MPSのためのTips&Tricksの内容はカスタマイズすることができます。これは、ビルドスクリプトの新しいヒントとコツの概念で実行できます。

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>>

カジャック配給

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)。これにより、ビルドスクリプトの冒頭に記載されている名前のantファイルが作成されます。

build Kajak generates myBuild.xml

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

sa10

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

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

sa13

sa12

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

最終更新日: 2019年8月30日