Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Unix/Linux サービス

systemd サービス

操作プロセス

1. JDKがインストールされたCentOS7仮想マシン

Linux 版 JDK をダウンロードする場合、wget などの直接リンクで直接ダウンロードすることはできません。そうしないと解凍に失敗します。元の公式サイトを開き、ライセンスに同意するをクリックしてからダウンロードをクリックしてください (この方法ではダウンロードに非常に時間がかかります)。より良い方法は、ダウンロード ページのアドレスを Thunder にコピーし、Thunder 経由でダウンロード ページを開き、ライセンスに同意した後でダウンロードをクリックすることです。

ダウンロード後、解凍して環境変数を設定します

tar -zxvf jdk1.8.0_211.jar.gz

環境変数の設定: /etc/profileファイルに以下を追加します

JAVA_HOME=/var/java/jdk1.8.0_211 をエクスポートします。
エクスポート CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
エクスポート PATH=$PATH:$JAVA_HOME/bin

環境変数を追加した後、source /etc/profile を実行して環境変数を有効にします。

2. インストールするSpring Bootアプリケーションを準備する

2.1 正常にインストールするには、pom ファイル内の関連プラグインの構成に特に注意してください。正しい例は次のとおりです。

<ビルド>
  <プラグイン>
   <プラグイン>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <構成>
     <mainClass>com.itsherman.dcm.アプリケーション</mainClass>
     <実行可能ファイル> 真</実行可能ファイル>
    </構成>
    <処刑>
     <実行>
      <目標>
       <goal>再パッケージ化</goal>
      </目標>
     </実行>
    </処刑>
   </プラグイン>
  </プラグイン>
 </ビルド>

spring-boot-maven-pluginプラグインのみを宣言し、後続の設定項目を無視すると、構築したパッケージ (jar) が移植後に正常に起動しない可能性が高くなります。メイン メニュー属性が見つからないというエラーを報告します。

上記の問題は、主にビルド​​された実行可能 jar パッケージに META_INF フォルダーがあるために発生します。このフォルダー内の MANIFEST.MF ファイルにはパッケージの主な情報が記述されており、Main-Class 行が欠落しています。解決策としては、手動で追加するか、上記の構成(特に実行構成項目が欠落していないこと)に従って、mvn install を再実行します。 jar パッケージを再生成した後、winrar ツールを使用して開き、MANIFEST.MF ファイルの情報を確認します。

一般的な完全なファイル情報は次のとおりです。

マニフェストバージョン: 1.0
アーカイババージョン: Plexus Archiver
製造者: シャーマン
開始クラス: com.itsherman.dcm.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot バージョン: 2.1.5.RELEASE
作成者: Apache Maven 3.6.0
ビルド Jdk: 1.8.0_172
メインクラス: org.springframework.boot.loader.JarLauncher

その後、 java -jar myapp.jarコマンドを使用してローカルで実行してみることができます。

3. xftpなどのファイル移行ツールを使用して、jarパッケージを手順[1]の仮想マシンに移行します。

4. 仮想マシンの/etc/systemd/systemの下にサービス設定ファイルを記述します。参考例は以下の通りです。

[ユニット]
説明=myapp
後=syslog.target
[サービス]
ユーザー=hadoop
実行開始=/var/java/jdk1.8.0_211/bin/java -jar /home/hadoop/myapp/dev-manager.jar
成功終了ステータス=143
[インストール]
WantedBy=マルチユーザー.ターゲット

•説明: プログラムの説明
•ユーザー: システムユーザー
•ExecStart: プログラムを起動するコマンド

設定ファイルを書き込んだら保存して終了します

サービスを開始する

サービス構成情報を更新する

systemctl daemon-reload

サービスを開始する

systemctl start myapp.service

起動時にサービスを開始する

systemctl enable myapp.service

サービスステータス情報を表示する

systemctl status myapp.service

6. テスト

ブラウザを開いてサービスにアクセスする

要約する

上記は、Linux システムに Spring Boot アプリケーションをインストールする方法に関する詳細なチュートリアルです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Springboot を Linux サーバーにパッケージ化してデプロイする方法
  • Linux のバックグラウンドで Springboot を実行する方法
  • Linux で Springboot プロジェクトを展開する方法と手順
  • Linuxを使用してSpring Bootプログラムをデプロイする
  • Spring Boot Linuxの起動方法の詳しい説明

<<:  フロントエンドタスク構築のための強力なツールであるGulp.jsの使い方を詳しく説明します

>>:  MySQL レプリケーションの利点と原則を詳しく説明します

推薦する

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

Linux システムでのユーザー管理の概要

目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...

Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

2 台のテスト マシンを見つけます。 [root@docker1 centos_zabbix]# d...

jar パッケージを Docker コンテナに変換する方法

jar パッケージを Docker コンテナに変換する方法1.まずJavaイメージをダウンロードする...

ウェブページで任意のフォントを使用する実践的な操作とデモ

以前、「Web ページにシステムに組み込まれていないフォントを埋め込む」という研究をしたことがありま...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

html-webpack-plugin の使用方法の詳細な説明

最近、React プロジェクトで初めてhtml-webapck-pluginプラグインを使用しました...

必見の JavaScript 面接質問 10 選のまとめ (おすすめ)

1.これは1. 誰が誰に電話をかけますか?例: 関数foo(){ console.log(&quo...

Vueはシンプルなメモ帳機能を実装します

この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...

Nginx と GeoIP モジュールを使用して IP の地域情報を読み取る方法

LinuxにGeoIPをインストールする yum で nginx-module-geoip をインス...

vue3.0 のウォッチ リスナーの例の詳細な説明

目次序文リスナーと計算プロパティの違いvue3 で watch を使用するにはどうすればいいですか?...

初心者がHTMLタグを学ぶ(1)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

fileReader 使用時の落とし穴と解決策

目次fileReader に関する落とし穴iOS における FileReader の落とし穴 (イメ...

MySQL 8.0.17 をインストールしてリモート アクセスを構成する方法

1. インストール前の準備データベースのバージョンを確認するコマンド: mysql --versio...