アプリケーションのビルド
本ページは、環境のセットアップで準備した Java 17、Maven 3.9.x、Node.js 22.x を使用し、ビルドマシンで実行します。ビルドマシンと実行サーバーは分離できます。同一バージョンの JAR とフロントエンド成果物がある場合は、qOntology サービスのデプロイへ進んでください。
1. 同一リリースのソースコードを取得
# ソースコードを取得してプロジェクトディレクトリに移動
git clone https://gitee.com/qiantongtech/qOntology.git
cd qOntology
# 実際のリリースに切り替え、ビルド対象のコミットを記録
git checkout '<RELEASE_TAG_OR_COMMIT>'
git rev-parse HEAD<RELEASE_TAG_OR_COMMIT> を実際のリリースに置き換えます。コミットを記録し、初期化 SQL、外部設定の参照ファイル、バックエンド、フロントエンドを同じバージョンから取得してください。ソースディレクトリが既にある場合は、そのディレクトリでバージョンを確認し、再クローンは不要です。
# このターミナルで使用する Java 17 とビルドツールのパスを設定
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH="$JAVA_HOME/bin:/opt/maven/bin:/opt/node22/bin:$PATH"
# Java、Maven、Node.js、npm のバージョンを確認
java -version
mvn -version
node -v
npm -vJava 17、Maven 3.9.x、Node.js 22.x が期待値です。フロントエンドの依存関係には npm レジストリ、バックエンドには POM で定義された Maven リポジトリへの接続が必要です。
2. バックエンドのビルド
2.1. パッケージを作成
最上位の pom.xml がある qOntology ソースルートで実行します。
# バックエンドと依存モジュールをビルドし、Docker コマンド表示・イメージ作成・push は省略
mvn clean package -pl qontology-server -am \
-Ddocker.print.skip=true \
-Ddocker.build.skip=true \
-Ddocker.push.skip=true-am は依存モジュールもビルドします。POM には Docker 関連タスクが含まれるため、ネイティブデプロイではコマンド表示、イメージ作成、push を明示的に省略します。Docker のインストールやログインは不要です。
リリース手順でテスト実行の省略が明示的に許可されている場合は、次のコマンドを使用できます。この成功はパッケージ作成の成功を示すだけで、テスト合格を意味しません。
# テスト実行の省略が許可される場合のみ使用。Docker 関連タスクもすべて省略
mvn clean package -pl qontology-server -am -DskipTests \
-Ddocker.print.skip=true \
-Ddocker.build.skip=true \
-Ddocker.push.skip=true依存関係のダウンロードやコンパイルでエラーが発生した場合は、まずログとリリースバージョンを確認してください。回避のために依存バージョンを安易に変更しないでください。
2.2. バックエンド成果物の確認
# JAR が空でないことと、Spring Boot のアプリケーション内容を含むことを確認
test -s qontology-server/target/qontology-server.jar
jar tf qontology-server/target/qontology-server.jar | grep -E 'BOOT-INF/(classes|lib)' | headデプロイ成果物は qontology-server/target/qontology-server.jar です。.original、ソースアーカイブ、業務モジュールの通常の JAR は選択しないでください。次のページでは起動設定とポート 8097 を明示的に上書きし、ソースの開発用ポートに依存しない構成にします。
3. フロントエンドのビルド
3.1. 本番設定の確認
qontology-ui に移動して .env.production.local を編集します。このファイルで今回の本番ビルドの設定を上書きするため、共有の環境ファイルを変更する必要はありません。
cd qontology-uiサーバー IP を置き換えて、次の内容を保存します。
VITE_APP_BASE_API=/prod-api/
VITE_APP_FILE_VIEW=/kkfileview
VITE_APP_AUTH_TYPE=local
VITE_APP_THIS_APP_URL=http://<SERVER_IP>:8897本シリーズではローカルログインを使用します。現在のフロントエンドは VITE_APP_AUTH_TYPE=sso の場合のみ SSO を使用します。VITE_APP_SERVER_URL と VITE_APP_CLIENTID は SSO 用です。認証サーバーのサンプルアドレスを API の接続先として使用しないでください。SSO が必要な場合は、実際の認証サービスとコールバック URL を別途設定します。
VITE_APP_FILE_VIEW=/kkfileview は現在のサイトと同一オリジンのプレビュープロキシを使用します。フロントエンドの環境変数はビルド時に成果物へ埋め込まれるため、サーバーアドレスや認証方式を変更したら再ビルドが必要です。VITE_* にサーバー側の秘密情報を保存しないでください。
3.2. 依存関係のインストールとビルド
確認したソースにはフロントエンドのロックファイルがないため、次を使用します。
# プロジェクトの依存関係をインストールし、本番フロントエンドをビルド
npm install
npm run build:prod
# 生成されたフロントエンドの入口ファイルを確認
test -s dist/index.html再現のため、生成したロックファイルとビルド記録を保存します。後続リリースに有効な package-lock.json がある場合は、その手順に従って npm ci に変更できます。ロックファイルなしで npm ci を実行しないでください。Vite のグローバルインストールも不要です。
成果物 qontology-ui/dist/ は全体を引き渡します。本番サーバーでは Nginx で静的ファイルを配信し、npm run dev や Vite preview を正式な入口として使用しないでください。
4. デプロイファイルの準備
| 元ファイル・ディレクトリ | サーバー上の場所 | 説明 |
|---|---|---|
qontology-server/target/qontology-server.jar | /opt/qontology/server/qontology-server.jar | 実行可能なバックエンド JAR |
qontology-ui/dist/ 内の全ファイル | /opt/qontology/web/ | web の直下に index.html を配置 |
| 同一リリースの初期化 SQL | 初回初期化用の一時配置ディレクトリ | Web ルートには置かない |
次ページで作成する deploy.yml | /opt/qontology/config/deploy.yml | ネイティブデプロイ用の上書き設定 |
JAR をサーバーの ~/qontology-release/qontology-server.jar に、dist 内部のファイルを ~/qontology-release/web/ にアップロードします。次のページでは、この一時配置ディレクトリからインストールします。
引き渡し時には、リリースのコミット、ビルドツールのバージョン、テスト実行の有無、チェックサムを記録します。ソースルートでバックエンドとフロントエンド入口のチェックサムを計算できます。
sha256sum qontology-server/target/qontology-server.jar qontology-ui/dist/index.htmlこの手順の代わりにリポジトリの一括リリーススクリプトを直接実行しないでください。イメージ作成や push が含まれる場合があります。
次は qOntology サービスのデプロイです。
