web-dev-qa-db-ja.com

タイプorg.springframework.context.ConfigurableApplicationContextは解決できません。必要な.classファイルから間接的に参照されています

spring.io のチュートリアルに従って、スプリングブートを使用してスプリングアプリを構築しています。

1台のコンピューターでプログラムを完全に実行できます。別のコンピューターで試すと、次のエラーが表示されます

タイプorg.springframework.context.ConfigurableApplicationContextは解決できません。必要な.classファイルから間接的に参照されています

私は、JRE Systems Library(JDK 1.8)を削除して追加し、mavenを使用してプロジェクトをクリーニングおよび更新し、さらにプロジェクト全体を削除して再インポートしました。これらの方法はすべて成功していません。

私のpomファイルは

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.1.RELEASE</version>
  </parent>

  <groupId>test.api</groupId>
  <artifactId>api.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>api.test Maven Webapp</name>
  <url>http://maven.Apache.org</url>

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

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

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

</project>

エラーを与えているクラスはHelloWorldConfiguration.Javaクラスです

package hello;

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

@SpringBootApplication
public class HelloWorldConfiguration {

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

}

どんな助けも大歓迎です。ありがとうございました。

13
user2719805

2番目のマシンでMavenキャッシュが破損しています。 JARを開くことができないため、この例外が発生します。

そのプロジェクトの2番目のマシンでこのコマンドを実行することで、これを修正できます。

mvn dependency:purge-local-repository

それでも解決しない場合は、そのマシンのローカルリポジトリを削除してみてください(~/.m2/repository/org/springframework)を実行し、mvn packageもう一度。

34
Stephane Nicoll

以前にも同じ問題に直面しました。いくつかの依存関係の破損が発生した可能性があります。依存関係をパージおよび再解決できます。そのために:

  1. pom.xmlが存在するプロジェクトの場所に移動します。
  2. コマンドプロンプトを開き、以下のコマンドを入力します。

    mvn依存関係:purge-local-repository -DreResolve = true

10
xpioneer

同じ問題がありました。ローカルコンピューター上のMaven(.m2)のローカルリポジトリディレクトリを削除して、これを解決しました。問題は解決しました。

1
Deepak Soni
  1. プロジェクトで使用されているspring-contextのバージョンを確認します。

(Eclipseの場合:Project Explorer-> [your project]-> Maven Dependencies)

または

mvn dependency:tree

プロジェクトのすべての依存関係をリストします

  1. フォルダーを削除しますorg/springframework/spring-context/5.0.9.RELEASE mavenリポジトリから.m2/repository5.0.9.RELEASEは、春のコンテキストリリースバージョンです。
1
Barun

私は同じ問題を抱えていたので、次の手順に従って修正しました。

1。 Eclipseを閉じます

2。リポジトリフォルダー内のすべてのファイルを削除.m2/repository

Eclipseを再度開き、Mavenプロジェクトを更新します

0
Pankaj Sharma

依存関係の一部が破損しているため、この競合が発生します。この競合を削除するには、リポジトリを開いて.m2フォルダーに移動し、そのフォルダーからすべてのファイルを削除します。そして、プロジェクトを開いてデバッグを開始し、maven cleanを実行します。クリーニング後、すべてのダウンロードはmaven projetを更新するだけです。そしてあなたの紛争は解決されるでしょう。

0
krishna Tyagi

私も同じ問題を抱えており、.m2/repository/orgフォルダーを削除することで解決しました。後でMavenがフォームSTSを更新しました。