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

推薦する

CentOS の起動時に RabbitMq ソフトウェアを自動的に起動する方法

1. /etc/init.dディレクトリに新しいrabbitmqを作成します。 [root@loca...

Vue nextTickの原理の分析

目次イベントループmiscroTask (マイクロタスク) UI レンダリング (重要なポイント)次...

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...

Vue の計算プロパティとリスナーの使用の概要

1. 計算プロパティとリスナー1.1 計算プロパティ <!DOCTYPE html> &...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

Dockerコンテナレイヤーの概念の詳細な説明

目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...

HTML で色を表すには、6 桁の 16 進コード、RGB、またはキーワードを使用します。

HTML で色を表す方法は 3 つありますが、最もよく使われるのは 6 桁の 16 進コード表現です...

Nginx ドメイン転送の使用シナリオ コード例

シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...

タイムライン効果を実現するCSS3

最近、コンピューターの電源を入れたところ、Geek Academy が新規ユーザーに 1 か月の無料...

Linux カーネル デバイス ドライバー proc ファイル システム ノート

/***************** * proc ファイルシステム***************...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

Windows に mysql5.7.28 winx64 の解凍バージョンをインストールするための詳細なチュートリアル

目次1. 解凍する2. データフォルダを作成する3. MySQLに環境変数を追加する3.1 コントロ...

macOS での MySQL 8.0.17 のインストールと簡単な設定チュートリアル

私が書いた内容が理解できない場合は、インターネット上に理解できるチュートリアルがない可能性があります...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...