web-dev-qa-db-ja.com

Spring Bootアプリケーションはorg.springframework.bootパッケージを解決できません

Spring Initializer を使用してスプリングブートプロジェクトをセットアップしました。新しいプロジェクトを作成するか、依存関係を操作しようと何度か試みましたが、すべてが整っているようです。

STS(Spring Tool Suite)を使用していますが、theorg.springframework.bootパッケージからのインポートに関するエラーが表示されます。アプリケーションを実行すると、例外がスローされます。

スレッド「メイン」の例外Java.lang.Error:未解決のコンパイル問題:SpringApplicationを解決できません。

com.example.DemoApplication:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <Java.version>1.8</Java.version>
        <start-class>com.example.DemoApplication</start-class>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

STSでJava 1.8を使用しています。

24
Orel Bitton

スプリングブートの親のバージョンを変更する

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
 </parent>
23
Nithin

プロジェクトの右ボタン-> Maven->プロジェクトの更新

次に、「スナップショット/リリースの強制更新」をチェックします

16
victommasi

Pom.xmlから、Springリポジトリエントリを削除してください。デフォルトでは、mavenリポジトリからダウンロードされます。 1.5.6.RELEASEで試してみましたが、非常にうまくいきました。

4
gonella

以下の手順が機能しない場合:

Spring Boot 1.4.2.RELEASEを1.5.10.RELEASEに置き換えました

  • プロジェクトを右クリックして、-> Maven-> Download Resources
  • プロジェクト-> Maven->プロジェクトの右クリック

このエラーの理由は、同じバージョンの複数のバージョンがMavenローカルリポジトリフォルダーにダウンロードされていることです。

以下の手順に従って、既存のすべてのリポジトリーjarをクリアし、POM.xmlで定義された依存関係に基づいてすべてを最初からダウンロードします。

  1. ビルドパスに移動します。ライブラリの追加セクションでMavenリポジトリを確認します。
  2. Jarとmousehoverを選択します。ローカルリポジトリの場所が表示されます。通常、user/.m2/repository/....です。
  3. 場所に行きます。含まれるリポジトリフォルダを削除します。
  4. プロジェクトを右クリックします。Maven-> maven updateを実行します。
    これにより、依存関係の問題が解決します。 Mavenはリポジトリからすべてのアイテムを再度ダウンロードし、プロジェクトをビルドしようとするためです。
4
Sumit Sahoo

私のプロジェクトでは、spring-boot-starter-parentの依存関係を2.0.0.releaseから2.0.5.releseに更新しました。これにより問題が解決しましたインポートorg.springframework.boot.SpringApplicationを解決できません

3
Gaurav sharan

基本的なスプリングブートアプリを操作しようとしたときにも、同じ問題が発生しました。公式の spring-boot site から最新のスプリングブートバージョンを使用しようとしました。

今日と同様、最新バージョンは1.5.4.RELEASEです。しかし、プロジェクトの複数のクリーンアップに関係なく、Eclipse IDEでコンパイルの問題が発生し続けます。 spring-bootのバージョンを1.5.3.RELEASEに下げて、単純にworked!!以前のプロジェクトのいくつかは古いバージョンを使用していたため、このオプションを試してみました。

1

最初のSpringブートアプリケーションで同じ問題が発生しました。

チュートリアルでは、サンプルアプリケーションを開始するために次の依存関係を確認できました

  • Spring Boot 1.4.2.RELEASE
  • Maven 3
  • Java 8

私は同じことをしました、私のSpring STSはすべてのクラスを認識していますが、@ SpringBootApplicationでメインクラスに注釈を付けているとき、このクラスを認識していませんが、クラスパスでjarが利用できました。

問題を解決するために以下を持っています

  • Spring Boot 1.4.2.RELEASEを1.5.3.RELEASEに置き換えました
  • プロジェクトを右クリックし、-> Maven-> Download Resources
  • プロジェクトを右クリック-> Maven->プロジェクトを更新

その後、動作しました。

ありがとう

1
Kushwaha

アプリケーションをjarとして実行すると、Manifest.MFファイルはどのクラスにmainメソッドがあるかを知っているはずです。

SpringBootがコードをコンパイルするときにこの情報を追加するには、pomファイルにstart-classプロパティを追加します。

例えば。:

<properties>
        <start-class>com.example.DemoApplication</start-class>
</properties>
0
Bruno

私が追加して働いた

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-autoconfigure -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>2.1.3.RELEASE</version>
</dependency>

他の主な依存関係を直接使用するのではなく、理由がわかりません。

0
demonoga

ほとんどの読者にとって、この答えは話題外かもしれません。私の場合、オフィスのWi-Fiネットワークは高度にセキュリティ保護されているため、依存関係は更新されず、「mvn clean」は機能しませんでした。 (同じ点でgithubのプッシュとプルは機能しません)私はちょうど私の携帯電話でティーザリングに移動し、それが動作します。馬鹿げた、ほとんどの人にとって話題外ですが、それはいくつかの非常に特殊なケースに役立つかもしれません。

0
Charles Julien

相対パスを削除する必要はありません。 springframeworkブートの親バージョンを変更するだけです。次のバージョン2.1.2は正常に機能します。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.appsdeveloperblog.app.ws</groupId>
    <artifactId>mobile-app-ws</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mobile-app-ws</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <Java.version>1.8</Java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.appsdeveloperblog.app.ws</groupId>
            <artifactId>mobile-app-ws</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
0
Yagmur SAHIN

ローカルMavenリポジトリのJARファイルに問題がある可能性があります。 .m2/repositoryフォルダーを削除して、Maven-> Update Project ...をもう一度クリックして、Mavenが再び依存関係をダウンロードするようにします。私はそれを試し、それは私のために働いた。

0

これを試してみてください、それもあなたのために働くかもしれません。

  1. コマンドプロンプトを開き、プロジェクトフォルダーに移動します。
  2. プロジェクトのビルド(Mavenの場合、実行mvn clean install
  3. ビルドが成功したら、
    • 任意のIDE(intellij/Eclipse)でプロジェクトを開きます。
    • 既に開いている場合は、IDEを再起動します。

これはv1.5とv2.1の両方で機能しました

0
hbamithkumara

解決策は、pom.xmlファイルでSpringのバージョンを変更することです

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
0
Sang9xpro