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を使用しています。
スプリングブートの親のバージョンを変更する
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
プロジェクトの右ボタン-> Maven->プロジェクトの更新
次に、「スナップショット/リリースの強制更新」をチェックします
Pom.xmlから、Springリポジトリエントリを削除してください。デフォルトでは、mavenリポジトリからダウンロードされます。 1.5.6.RELEASEで試してみましたが、非常にうまくいきました。
以下の手順が機能しない場合:
Spring Boot 1.4.2.RELEASEを1.5.10.RELEASEに置き換えました
このエラーの理由は、同じバージョンの複数のバージョンがMavenローカルリポジトリフォルダーにダウンロードされていることです。
以下の手順に従って、既存のすべてのリポジトリーjarをクリアし、POM.xmlで定義された依存関係に基づいてすべてを最初からダウンロードします。
私のプロジェクトでは、spring-boot-starter-parentの依存関係を2.0.0.releaseから2.0.5.releseに更新しました。これにより問題が解決しましたインポートorg.springframework.boot.SpringApplicationを解決できません
基本的なスプリングブートアプリを操作しようとしたときにも、同じ問題が発生しました。公式の spring-boot site から最新のスプリングブートバージョンを使用しようとしました。
今日と同様、最新バージョンは1.5.4.RELEASEです。しかし、プロジェクトの複数のクリーンアップに関係なく、Eclipse IDEでコンパイルの問題が発生し続けます。 spring-bootのバージョンを1.5.3.RELEASEに下げて、単純にworked!!以前のプロジェクトのいくつかは古いバージョンを使用していたため、このオプションを試してみました。
最初のSpringブートアプリケーションで同じ問題が発生しました。
チュートリアルでは、サンプルアプリケーションを開始するために次の依存関係を確認できました
私は同じことをしました、私のSpring STSはすべてのクラスを認識していますが、@ SpringBootApplicationでメインクラスに注釈を付けているとき、このクラスを認識していませんが、クラスパスでjarが利用できました。
問題を解決するために以下を持っています
その後、動作しました。
ありがとう
アプリケーションをjarとして実行すると、Manifest.MF
ファイルはどのクラスにmainメソッドがあるかを知っているはずです。
SpringBootがコードをコンパイルするときにこの情報を追加するには、pomファイルにstart-class
プロパティを追加します。
例えば。:
<properties>
<start-class>com.example.DemoApplication</start-class>
</properties>
私が追加して働いた
<!-- 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>
他の主な依存関係を直接使用するのではなく、理由がわかりません。
ほとんどの読者にとって、この答えは話題外かもしれません。私の場合、オフィスのWi-Fiネットワークは高度にセキュリティ保護されているため、依存関係は更新されず、「mvn clean」は機能しませんでした。 (同じ点でgithubのプッシュとプルは機能しません)私はちょうど私の携帯電話でティーザリングに移動し、それが動作します。馬鹿げた、ほとんどの人にとって話題外ですが、それはいくつかの非常に特殊なケースに役立つかもしれません。
相対パスを削除する必要はありません。 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>
ローカルMavenリポジトリのJARファイルに問題がある可能性があります。 .m2/repositoryフォルダーを削除して、Maven-> Update Project ...をもう一度クリックして、Mavenが再び依存関係をダウンロードするようにします。私はそれを試し、それは私のために働いた。
これを試してみてください、それもあなたのために働くかもしれません。
これはv1.5とv2.1の両方で機能しました
解決策は、pom.xmlファイルでSpringのバージョンを変更することです
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>