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 レプリケーションの利点と原則を詳しく説明します

推薦する

MySql の 4 つのトランザクション分離レベルについて簡単に説明します。

分離レベル:隔離はあなたが考えるよりも複雑です。 SQL 標準では 4 つの分離レベルが定義されてお...

dockerログマウントの問題を解決する

重要なのは、ローカルサーバーに書き込み権限がないことですキーはここにあります(アクセス拒否)。私は肯...

Linux でのインストール中にソフトウェア パッケージの依存関係レポートに関連する問題の解決策

目次背景1) yumのkeepchche機能を有効にする: 方法1 2) yum-utils ソフト...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

js はマウスによる画像の切り替えを実装します (タイマーなし)

この記事の例では、マウス切り替え画像を実現するためのjsの具体的なコードを参考までに共有しています。...

Vueでaxiosを簡単にカプセル化する方法

Vueにaxiosを挿入する 'axios' から axios をインポートします。...

Docker クロスホストネットワークの実装 (手動)

1. Macvlan の紹介Macvlan が登場する前は、イーサネット カードに複数の IP ア...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

Vueオプションの詳細な説明

目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...

Ubuntu 20.04 に GitLab をインストールして設定する方法

導入GitLab CE または Community Edition は、主に Git リポジトリのホ...

MySQL マルチインスタンス構成ソリューション

1.1 MySQL マルチインスタンスとは何ですか?簡単に言うと、MySQL マルチインスタンスとは...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

MySQLで論理SQLを置き換える際の落とし穴を回避する方法の詳細な説明

重複キーの置換と挿入の違い置換の使用法競合がない場合、挿入と同等となり、他の列のデフォルト値が使用さ...

CSS3プロパティline-clampはテキスト行の使用を制御します

説明: ブロック要素に表示されるテキストの行数を制限します。 -webkit-line-clamp ...

MySQL の一般的な問題とアプリケーション スキルの概要

序文MySQL の日常的な開発やメンテナンスでは、パスワードの紛失やテーブルの破損など、避けられない...