ホームページ  >  記事  >  Java  >  Mavenパッケージを使用してSpringbootでmainClassを指定する方法

Mavenパッケージを使用してSpringbootでmainClassを指定する方法

WBOY
WBOY転載
2023-05-23 19:55:111948ブラウズ

Maven パッケージングを使用して mainClass を指定する

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.xxx.XxxApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

SpringBoot Maven パッケージングのエラーと理由

1.org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE:再パッケージ失敗: メイン クラスが見つかりません

2. シンボルが見つかりません

メイン クラスが見つかりません問題の原因

SpringBoot パッケージング プラグインを次のように使用する場合follow

<build>
    <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
     </plugins>
</build>
  • このパッケージ化プラグインを使用する場合は、クラスに @SpringBootApplication アノテーションを付ける必要があります。そうでない場合、再パッケージ化に失敗しました。パッケージ化時にメイン クラスが見つからないことが報告されます。

  • プロジェクトのパッケージ化が単なる通常のツールキットである場合、パッケージング プラグインを追加する必要はありません。Maven はデフォルトの方法を使用して、設定なしでパッケージ化します ( Maven のデフォルトのメソッド設定についてオンラインで学習してください。オンラインでたくさんありますので、確認してください)。

  • プロジェクトがマルチレベル ビルド (マルチモジュール) モードでビルドされている場合、パッケージ化時には単なる通常のモジュールですが、再パッケージ化は失敗しました: メイン クラスが見つからないエラー次に、パッケージ化プラグインも継承されるため、モジュールの親プロジェクトに SpringBoot パッケージ化プラグインが追加されているかどうかを確認します。したがって、便宜上、SpringBoot パッケージ化プラグインを親プロジェクトに直接追加せず、モジュールを SpringBoot プロジェクトとしてパッケージ化してから SpringBoot パッケージ化プラグインを追加することをお勧めします。

  • Maven のデフォルトのパッケージ化方法 (以下に示すように) に関しては、パッケージは jar モードでパッケージ化されるため、単に pom としてパッケージ化する場合を除き、pom.xml を設定する必要はありません。 < ;packaging>pom を設定できます。それ以外の場合は、設定する必要はありません。もちろん、マルチモジュールの最上位は pom パッケージング方式でなければなりません。

Mavenパッケージを使用してSpringbootでmainClassを指定する方法

プロジェクトには複数の main.class があるため、Maven はパッケージ化するときにメインの入り口としてどれを使用すればよいかわかりません。 set

<build>
 <plugins>
   <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
      	<mainClass>com.demo.springboot.DemoSbApplication</mainClass>
     </configuration>
   </plugin>
 </plugins>
</build>

シンボルが見つからない理由

その理由は、通常、プロジェクトをパッケージ化するときに、プロジェクトを jar パッケージにパッケージ化し、他のモジュールを参照するためです。

他のモジュールは jar を使用してパッケージ化されていません。springboot の場合、<packaging>pom</packaging> に設定されています。この種のクラスは見つからないはずなので、必要なのは単にそのモジュールのパッケージ化方法を <packaging>jar</packaging> に設定します。注: これにより、メインクラスが見つからない問題が発生する可能性があります。

以上がMavenパッケージを使用してSpringbootでmainClassを指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。