[
アプリケーションをデプロイ ] には、バイナリを直接パッケージ化するのではなく、後でバイナリをアセンブルするために Java のソースをパッケージ化するオプションがあります。それから、これらのファイルは Git などのバージョン管理下に置くことができます。
[ アプリケーションをデプロイ ] を使用して、 [ ターゲット ] で「Local」を選択し、
[ Package Type ] プロパティに「Sources」の値を設定する必要があります。
[ デプロイ ] ボタンをクリックすると、選択した
Deployment Unit オブジェクトに対応するソースコード、設定ファイル、およびリソースが、特定のフォルダ構造にコピーされます。以下で詳細を説明します。
GeneXus 18 以降では、Java ジェネレーターの依存関係およびビルドプロセスの管理に Gradle を使用するようになりました (「
Gradle と Java ジェネレーター」参照)。
そのため、 [ アプリケーションをデプロイ ] では、ユーザーがビルドしてパッケージ化するツールとして Gradle を使用する必要がある場合に、gradle.properties ファイルを生成します (ほかのツールも使用可能)。
[ アプリケーションをデプロイ ] で生成される構造は、次のとおりです:
- src\
- Main\java\<パッケージ>
<パッケージ> は [ Java package name ] プロパティです。すべてのソースファイルと設定ファイル (client.cfg、images.txt、messages<lang>.txt) は、このディレクトリーの下に配置されます。
- main\webapp\WEB-INF.
この構造は、Web アプリケーション向けに作成されます。これには、このディレクトリーの下に配置するために必要な設定ファイルが含まれます。
- build.gradle ファイル
このファイルは、Web ディレクトリーからデプロイパッケージのルートにコピーされます。
- gradle.properties ファイル
このファイルは、デプロイユニットから抽出できる情報 (Java プラットフォーム、データストア、サーブレットのバージョンなど) から生成されます。これらの情報はすべて、アプリケーションのコンパイルおよび実行に必要なすべての依存関係をダウンロードするために Gradle エンジンによって使用されます。
警告: ユーザーのニーズに応じて、build.gradle ファイルを変更する必要があります。
Web ディレクトリーからコピーされた build.gradle ファイルは、素早い起動に役立ちますが、GeneXus 開発専用のタスク (Maven リポジトリから依存関係をダウンロードし、ローカルのフォルダ構造にバイナリをコピーする) が含まれることに注意してください。
ニーズに合わせて変更する必要があります。
ユーザー自身で、
gradlew、gradle.bat、および gradle フォルダをパッケージのフォルダに追加する必要があります。
CI/CD パイプラインを作成するには、「
アプリケーションをデプロイする MSBuild タスク」で説明されているように、MSBuild タスクを使用して [ アプリケーションをデプロイ ] を実行できます。
実行の 1つ目の手順は、
CreateDeployProject ターゲットです。この手順では、デプロイユニットの全体的なコールツリーおよび後に使用する複数のプロパティを含む .gxdproj ファイルを作成します。
2つ目の手順は、前のステップで生成された .gxdproj スクリプトファイルを入力として受け取ります。初期パッケージ (これにはすべてのソースが含まれるが、Gradle を使用してアプリケーションをビルドするための構造化は、この時点ではまだ行われていない) を作成します。
MSBuild.exe /verbosity:minimal /ToolsVersion:4.0 "c:\<Web model directory>\<project>.gxdproj"
/p:GX_PROGRAM_DIR=<GX program directory>
/p:USE_APPSERVER_DATASOURCE="False"
/p:DEPLOY_TYPE="SOURCES"
/p:APPLICATION_KEY="000000000000000000000000000"
/p:INCLUDE_GAM="False"
/p:INCLUDE_GXFLOW_BACKOFFICE="True"
/p:TARGET_JRE="9"
/p:TimeStamp="20230511182904"
/p:AppName="GenexusWebApp"
/t:CreatePackage
それから、最後にパッケージの構造をセットアップして、build.gradle ファイルをコピーする別のスクリプトを実行する必要があります。このスクリプトは、
GitHub の deployment-targets リポジトリで公開されています。
MSBuild.exe /nologo /verbosity:minimal /ToolsVersion:4.0 "C:\<GX program directory>\DeploymentTargets\Local\deploy.msbuild"
/p:DEPLOY_TYPE="SOURCES" /p:LANGUAGE="12"
/p:GENERATOR="Java"
/p:DEPLOY_PATH=<Deploy path>
/p:GX_PROGRAM_DIR=<GX program directory>
/p:CreateCloudPackage="false"
/p:TargetId="LOCAL"
/p:DeployFullPath=<Deploy PaTh>
/t:Deploy
この機能は、
GeneXus 18 Upgrade 4 以降で利用できます。