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

推薦する

LinuxにVSCodeをダウンロードしてインストールし、プログラミングを使用して現在の時刻を出力する

rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

Ubuntu 15.04 は MySQL リモート ポート 3306 を開きます

Ubuntu 15.04 は MySQL リモート ポート 3306 を開きます。以下の操作はすべて...

Hyper-V なしで Windows 10 を動作させるソリューション

Windows10 Home Edition でHyper-vを有効にする方法をまだ探していますか?...

Vue でよく使われる高階関数と包括的な例

1. 配列のよく使われる高階関数配列があり、その配列に対して次の操作を実行したいとします。 100 ...

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

JavaScript カウントダウン プロンプト ボックス

この記事の例では、カウントダウンプロンプトボックスを実装するためのJavaScriptの具体的なコー...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

JavaScriptのスリープ関数の使用

目次1.スリープ機能2.タイムアウトを設定する3. 約束4. 非同期待機5. 1秒後に出力1、2秒後...

CSS3セレクターの新機能の実装

目次基本的なセレクタ拡張属性セレクタ疑似クラスと疑似要素セレクター基本的なセレクタ拡張1. 子要素セ...

Vue のライフサイクルとフック関数

目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...

Vue.$set の失敗の落とし穴の発見と解決

偶然、プロジェクト内でVue.$setが無効であることがわかりましたデータ フィルタリングを追加する...

誰もが登録できるようにJiedaibaoを宣伝するにはどうすればよいでしょうか? ジエダイバオのプロモーション方法とスキル

借財宝は最近人気が出ている携帯電話ローンソフトウェアプラットフォームです。知人同士の貸し借りが特徴で...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

MySQL レプリケーション問題の 3 つのパラメータの分析

目次01 sql_slave_skip_counter パラメータ02 スレーブスキップエラーパラメ...