SpringBootプロジェクトが開発されたら、それをjarパッケージ/ warパッケージにパッケージ化し、デプロイして実行し、プロジェクト全体のプロセスを完了する必要があります。
1.pomファイル内
<build>
<finalName>DAG-1.0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
1.1maven-compiler-plugin
maven-compiler-plugin
プロジェクト内のJDKのバージョンと、指定したコンパイルによって生成されたクラスファイルのバージョンを指定できます。私の例では、開発中にソースコードでJDK11を使用するように指定しました。生成されたクラスファイルも、JDK11に対応しています。
1.2spring-boot-maven-plugin
spring-boot-maven-plugin
Mavenを使用してパッケージ化されたプラグイン。repackage
アプリケーションを再パッケージ化します。デフォルトでは、再パッケージ化と実行の2つのMaven目標には、プロジェクトで定義された依存関係が含まれます。
一部の依存関係は、実行可能jarパッケージから除外する必要があります。パッケージの実行中に依存モジュールを除外するには、次の3つの方法があります。
1.2.1特定のMavenモジュールを除外する
特定のMavenモジュールを除外するには、groupIdとartifactIdを独自に組み合わせます。(必要に応じて、分類子を追加して一意に確認できます。)
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludes>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
</excludes>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
com.fooの下のbarモジュールを除外します。
1.2.2「指定されたartifactId」に一致するすべてのMavenモジュールを除外します
「指定されたartifactId」に一致するすべてのMavenモジュールを除外します。
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludeArtifactIds>my-lib,another-lib</excludeArtifactIds>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
除外artifactId
IS my-lib
、another-lib
すべてのモジュール、すなわち、すべてのgroupId
下位artifactId
のためmy-lib
、another-lib
モジュール。
1.2.3「指定されたgroupId」に属するすべてのMavenモジュールを除外します
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludeGroupIds>com.foo</excludeGroupIds>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
すべてのモジュールgroupId
として除外されcom.foo
ます。
2.jarパッケージ名
<finalName>Your jar Package Name</finalName>
ビルドfileName
は、パッケージ化によって生成されたjarパッケージの名前を指定します。
3.Mavenパッケージ
SpringBootプロジェクトのルートディレクトリで次のコマンドを実行します。
mvn package spring-boot:repackage
xxx.jarを含むルートディレクトリにターゲットフォルダを生成できます。
4.jarパッケージを実行します
4.1jarパッケージを実行しているコンソール
java -jar xxx.jar
4.2 jarパッケージをバックグラウンドで実行します。ターミナルを閉じても、jarパッケージの実行には影響しません。
nohup java -jar DAG-1.0.jar > msg.log 2>&1 &
jarパッケージはバックグラウンドで実行され、ログ情報はmsg.logファイルに入力され、エラーログと正しいログはmsg.logに入力されます。
コマンドの最後にアンパサンドを追加すると、プロセスがバックグラウンドで実行されるため、すぐにプロンプト状態に戻り、次の操作を続行できます。
4.3 jarパッケージをバックグラウンドで実行し、正しいログと間違ったログを別のファイルに入力します
nohup java -jar DAG-1.0.jar >> msg1.log 2>>msg2.log &
正しいログがmsg1.logに入力され、間違ったログがmsg2.logに入力されます。
5.warパッケージをパックして生成します
jarパッケージはデフォルトで生成されます。pomファイルで生成するパッケージの形式を指定します
<packaging>war</packaging>
<name>DAG-1.0</name>
<description>DAG project for Spring Boot</description>
パッケージングコマンドを実行する
mvn package spring-boot:repackage
warパッケージが生成され、プログラムを実行するためにwarパッケージがデプロイされていることがわかります。
6.発生したエラーと注意事項
6.1 HTMLページにアクセスすると、対応するページが見つかりません
この場合、最初に、生成されたターゲットフォルダーの下に対応するテンプレートフォルダーと、それに含まれるべきxxx.htmlファイルがあるかどうかを確認する必要があります。プログラムの実行中は、ターゲットフォルダ内のもののみを認識します。ターゲットフォルダの下に対応するテンプレートフォルダとxxx.htmlファイルがない場合、HTMLページを開くことは絶対に不可能です。
このエラーの一般的な原因は、パッケージ化するプロジェクトのリソースとしてxxx.htmlが指定されていないことです。これは、pomファイルで指定する必要があります。
<build>
......
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.html</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<build>
上記のように、src / main / resourcesフォルダーの下に.propertiesファイル、.xmlファイル、.ymlファイル、.htmlファイルを指定し、src / main / javaフォルダーの下に.propertiesファイル、.xmlファイル、.ymlを指定します。プロジェクトのリソースファイルとして使用されるため、生成されたターゲットファイルでhtmlファイルを見つけることができます。
.htmlファイルの表示を削除すると、生成されたターゲットフォルダーに対応するHTMLファイルが見つからず、HTMLページを開くことができません。
<build>
......
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<build>
削除後、生成されたターゲットフォルダにHTMLファイルはありません。
テンプレートフォルダとその中にHTMLファイルがないと、実行中のプログラムはHTMLページにアクセスできません。
6.2 HTMLファイルがターゲットで生成されますが、HTMLページがまだ見つかりません
thymeleaf
設定が間違っている可能性があります。
thymeleaf.prefix
正しく書く必要がありますが、/
多かれ少なかれ書くことはできません。/
このように、アクセスページを書くと、パスに多かれ少なかれ1つあり/
、HTMLページを見つけることができないからです。 。
6.3 pomファイルmaven-compiler-plugin
またはspring-boot-maven-plugin
他のプラグインを正しくインポートできない(赤に変わる)
これらのプラグインを依存関係に導入してから、ビルドのプラグインにこれらのプラグインを導入する必要があります。