プログラミングでコンパイルを開始する

Deeplからの自動翻訳

継続的インテグレーションシステムでは、コードが送信されるたびに、あるいは毎時ごとに、ソースコードのコンパイルが自動的に開始されます。この方法だと、コード管理サーバー上でマージを確認することができます。

4D v19から、新しいコマンドでコードのコンパイルを起動できるようになったので、このタイプのシステムを設定することができます。

プログラミングでコンパイルを起動する

継続的インテグレーションとは?

継続的インテグレーションとは、ソースコードが変更されるたびに、その変更の結果が開発されたアプリケーションに回帰をもたらさないことを確認することです。主な目的は、開発中に統合の問題をできるだけ早く検出することです。

新しいコマンド

新しいコマンド Compile Projectでコンパイルできるようになりました。

  • 現在のプロジェクト
  • 現在のプロジェクト以外のプロジェクト

コンパイルに成功した場合、このコマンドはsuccessプロパティを持つ status オブジェクトを返します。そうでなければ、エラーのリストを含むステータス・オブジェクトを返します。

現在のプロジェクトをコンパイルする

デフォルトの設定で現在のプロジェクトをコンパイルする方法は、非常に簡単です。

var $status :Object
$status :=Compile project(
)

コンパイルオプションを上書きするには、新しい値のオブジェクトを渡します。以下は、オーバーライドできるオプションです。

  • コンパイル対象
  • 型推論
  • 数値やボタンに対するデフォルトの型
  • シンボルの生成
  • タイピングメソッドの生成
  • コンパイルに使用するコンポーネント

例えば、ソースコントロールサーバー上でコードが送信されるたびに、マージされたコードを検証するための簡単な構文チェックを起動することができます。

var$options;$status:Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)

アプリケーションでコンポーネントを使用する場合は、コンパイル済みのコンポーネントのリストをオプションオブジェクトで渡す必要があります。

var $options; : : . := () . := ("/PACKAGE/Components").( ).("拡張子 = .4dz") := ( )$status Object
var $component 4DFile
$optionsNew object
$optionscomponentsFolderfilesfk recursivequery
$statusCompile project$options

別のプロジェクトをコンパイルする

別のプロジェクトからアプリケーションをコンパイルすることができます。コマンドにプロジェクトファイルを渡すだけです。

var$file:4D.File
$file :=Folder(fk documents folder).file("Databases/myApp/Project/myApp.4DProject")
$status :=Compile project($file)

コンパイルエラーの管理

このコマンドは、コンパイルが成功したかどうかを示すステータス・オブジェクトを返します。コンパイルに失敗した場合、4Dはエラーメッセージのコレクション、関連するメソッド、そしてエラーの行番号を返します。

そして、新しいコマンドのパラメータ METHOD OPEN PATHコマンドの新しいパラメータのおかげで、コードエディタでメソッドを開き、エラー行にカーソルを置くことができます。

例えば、エラーのコレクションをリストボックスに表示し、リストで選択されたエラーのメソッドを開くボタンを追加することが可能です。

METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)

ご期待ください継続的インテグレーションに関するブログポストはまだまだ続きます!

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。