ナレッジベースの
Java ジェネレーター環境を初めて
ビルドする場合、必要なライブラリが
Gradle からキャッシュメモリー (既定で C:\Users\<user>\.gradle\caches\modules-2\files-2.1) にダウンロードされます。
次に、標準クラスの必須セットがこのキャッシュからモデルの \web\build\libs ディレクトリーにコピーされます。
注:
- このように、Gradle にはパッケージがダウンロードされるキャッシュメモリーがあるため、ビルドを実行するたびにインターネットにアクセスする必要はありません。「Java ジェネレーターのオフラインシナリオ」を参照してください。
- 以降は、各フォルダおよびファイルがモデルディレクトリーに配置されます。
- 環境にプロキシが設定されている場合、ライブラリをダウンロードできるようにするには、[ Gradle Options ] プロパティでプロキシのプロパティを設定する必要があります。その方法については、次のドキュメントを参照してください: 「Build Environment」。 [ Gradle option ] プロパティを使用できない場合は、代わりに gradle.properties ファイルでプロパティを設定する必要があります。
Java 標準クラスは 2 つのリポジトリで公開されます: Maven Central および Azure Artifacts。どちらのリポジトリも build.gradle ファイルで設定されます。
生成されたコード (*.java ファイル) は src\main\java フォルダに配置されます。
この生成されたコードをコンパイルする際には、Gradle キャッシュにダウンロードされた必須ライブラリを使用するほか、lib フォルダ内の *.jar ファイルも考慮されます。このようにして、追加のパッケージを lib フォルダにコピーすることができます。
注: 現在、ドライバーフォルダにある *.jar ファイルも、クラスパスへの追加パッケージと見なされます。これは将来廃止されるため、*.jar ファイルは lib フォルダに配置するようにしてください。
コンパイルされたファイルは \build\classes\java\main フォルダに残され、そこから、GeneXus からトリガーされるコマンド ライン プロセスが実行されます。
これらのプロセスの実行で考慮されるライブラリは、\web\build\libs にあります。
注: 実行時に使用する *.jar ファイルを追加する場合は、それを \web\build\libs フォルダ内ではなく lib フォルダ内に追加することが重要です。これは、Gradle のクリーニングが実行されるときに、\web\build\libs フォルダが削除されるためです。
また、Gradle は GeneXus で設定した Tomcat 内に webapp を作成し、その実行に必要なファイルすべて (*.jar、クラス、静的リソースなど) をコピーします。
コピーされる *.jar ファイルは、コンパイルの完了時にオンデマンドでダウンロードされた *.jar ファイルと、lib フォルダとドライバーフォルダに置かれている *.jar ファイルです。
JavaScript ファイルはモデルの js フォルダに生成されます。これらはコンパイル時に Tomcat にコピーされます。
ナレッジベースで [ すべてリビルド ] を実行すると、GeneXus は clean オプションを指定して Gradle を呼び出します。このオプションでは次のものが削除されます:
- Tomcat webapp。
- コンパイル済みのソースが格納されたビルドフォルダ。
- src\main\java フォルダ。
どのリポジトリでも公開されて
いない外部オブジェクトがある場合、ClassPath に正しく追加されていることを確認する必要があります。これを行うには、次の手順に従います:
- 外部オブジェクトが格納された JAR ファイルオブジェクトを選択します。
- Extract Java を .\lib に設定します。
これらの手順により、GeneXus は JAR ファイルを web フォルダの "lib" フォルダに自動的にコピーし、ClassPath に追加し、Tomcat で使用できるようにします。これにより、外部オブジェクトが利用可能となり、ナレッジベースで使用するためにアクセス可能になります。
リポジトリで公開されている外部オブジェクトがある場合、 [
Java Artifact Id ] プロパティと [
Java Artifact Version ] プロパティを設定する必要があります。
ナレッジベースオブジェクトをコンパイルする際、GeneXus は必要な JAR ファイルとその依存関係をダウンロードします。
次の場合、GeneXus でコンパイルできないことがあります:
- オブジェクトの名前が変更された
- オブジェクトが削除された
- オブジェクトがあるモジュールから別のモジュールに移動された
これは、Gradle がモデルの src\main\java フォルダ内にあるすべてのソースのコンパイルを試みるためです。
この問題を解決するには、該当するソースを手動で削除して、Gradle がそのコンパイルを試みないようにする必要があります。