web-dev-qa-db-ja.com

メインクラスが見つかりません:bootRepackage

Gradleビルドで問題が発生しました。 Spring Webサイトで提案されている標準( https://spring.io/guides/gs/rest-service/ )を使用していますが、gradleビルドを使用しようとすると、このエラーが発生しました:

My gradle problem

このグラドルでは機能しませんが、別の1つ(学校にいたときに取ったもの)を使用すると、完全に機能します。

31
mfrachet

2つの可能性があります

  1. ソースディレクトリが正しい場所にありません(これを修正するにはsourceSetsディレクティブを使用します。ソースディレクトリはsrc/main/Java/your/package
  2. これを追加して、メインクラスの場所を示します

    springBoot { mainClass = "hello.FileUploader" }

確かに1です。

32
Pradeep

私もこの問題を抱えています、ここで問題を解決しました:

つかいます org.springframework.boot:spring-boot-starter の代わりに org.springframework.boot:spring-boot-starter-web(プロジェクトが他のプロジェクトで使用されるモジュールのみである場合)。

または、gradleでメインクラスを設定します。

mainClassName = 'your.package.MainClass'

または、単にbootRepackageを無効にします

bootRepackage {
    enabled = false
}
23
Bruce

プロジェクトにはメインメソッドがありません(そうでない場合、プラグインはそれを見つけます)。メインメソッドには非常に具体的なシグネチャがあるため、public static void main(String[] args)があることを確認してください。

7
Dave Syer

Build.gradleファイルが属する現在のプロジェクトでメインクラスが定義されていないが、スプリント統合テストなどの何らかの目的でメインクラスを起動する場合。次のようにします:

追加中

bootRepackage {
    mainClass = 'your.app.package.Application'
}

build.gradle(プラグインをロードする必要があるため、ライン適用プラグイン: 'spring-boot'の後)で問題を修正します。

6
Richard

これは非常に古い投稿であることを知っています。しかし、最初のスプリングブートアプリケーション( https://spring.io/guides/gs/spring-boot/#scratch )をビルドしようとしたときに、この問題に遭遇しました。そのため、チュートリアルで言及されているpom.xmlの場所は正しくありません。 srcフォルダーの外に配置する必要があります。最終的なディレクトリ構造は次のとおりです-/workspace/src/main/Java/hello/HelloController.Java /workspace/src/main/Java/hello/Application.Java /workspace/pom.xml

2
Pramit Sinha

これは私にも起こりました。

build.gradleファイルの場所に混乱しました。このサブディレクトリを作成する指示の直後に記載されているため、src/main/Java/helloに配置する必要があると思いました。構造。

src folderを含むルートフォルダーに配置する必要があります。これを実行して、ガイドの指示に従って「gradle build」ではなく、ルートフォルダーから「./gradlew build」を呼び出すと、ビルドは成功しました。

私はgradleの標準インストールを実行せず、バイナリをダウンロードしただけです。これが「./gradlew build」が失敗した理由かもしれません。

1
Gidi

エンコーディングを指定して解決しました。おそらく、IDEでコードを記述したためです。

Java -Dfile.encoding=UTF-8 -jar build <filename>.jar
1
surga