2017-02-22 3 views
9

:その瓶はその内部のすべてのコンパイル済みクラスを持っていないhowereverSpringApplicationConfigurationが見つかりません:spring-boot-starter-testの内容が間違っていますか? Mavenの中にコンパイルエラーを取得

enter image description here

[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /C:/prototypes/demo-sse-spring-boot-master/src/test/java/com/cedric/demo/sse/SseDemoApplicationTests.java:[6,37] package org.springframework.boot.test does not exist 
[ERROR] /C:/TITAN/demo-sse-spring-boot-master/src/test/java/com/cedric/demo/sse/SseDemoApplicationTests.java:[10,2] cannot find symbol 
    symbol: class SpringApplicationConfiguration 
[INFO] 2 errors 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 

Mavenのレポは、ジャー存在を持っているようです。唯一のMETA-INFディレクトリ:

enter image description here

は、設計上ということですか? Mavenを幸せにするために、SpringApplicationConfigurationクラスを含むjarファイルはどこにありますか?

ここに私のpom.xmlの関連する部分だ:

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

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <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>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.webjars.bower</groupId> 
      <artifactId>jquery</artifactId> 
      <version>2.1.3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.16.4</version> 
     </dependency> 
    </dependencies> 

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

答えて

11

spring-boot-starter-testを、他のすべての春ブーツスタータのように、実際に推移他の依存関係の数に引っ張るだけでポンポンです。 pom-only依存関係がうまくいかないようなビルドシステムをいくつか保つだけの瓶があります。

アプリケーションをSpring Boot 1.4からSpring Boot 1.5にアップグレードしたようです。 Springブート1.5では、1.4で廃止されたいくつかのクラスが削除されました(org.springframework.boot.test.SpringApplicationConfigurationを含む)。

私はSpring Boot 1.4.4.RELEASEに戻​​って、すべての非推奨警告を修正することをお勧めします。これで、Spring Boot 1.5.1.RELEASEにアップグレードすることができます。

+0

はい、そのトリックは私のために働いた、ありがとう。このMavenの設定がどのように動作するかを包括的に説明してください。これは、依存関係を一覧表示することなく依存関係を引き出すことができます。なぜなら、1.5.1.RELEASEがそれを行うことができなかった理由は明らかではありません。非難されたアイテムのサポートを中止する決定が下されたか?ありがとうございました。 –

37

あなたのリリースでは@SpringApplicationConfiguration注釈は存在しません。新しい注釈は以下のとおりです。エラーとして

@RunWith(SpringRunner.class) 

@SpringBootTest(classes = YourApplicationMainClass.class) 

@WebAppConfiguration 
4

は1.5から1.4から春ブーツのアップグレードに起因し、その1.4で導入されているいくつかの新しいクラスは既存の一部を非推奨こと(下からの)に注意することが重要最終的に1.5で削除されるようになるクラスを作成します。そのようなものの詳細はで見つけることができる:ウェブサイトから引用Spring boot release notes

(編集):さらに

、スプリングブート1.4(以上)合理化とSpringブートテストを実行することができる様々な方法を簡素化しようとし。01から @SpringBootTest(classes=MyConfig.class)

@ContextConfiguration(classes=MyConfig.class, loader=SpringApplicationContextLoader.class)から@SpringBootTest(classes=MyConfig.class)

@SpringApplicationConfiguration(classes=MyConfig.class)から

:あなたは、新しい@SpringBootTestアノテーションを使用するには、次移行する必要があります@IntegrationTestから @SpringBootTest(webEnvironment=WebEnvironment.NONE)

へと@WebAppConfiguration@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)

から@WebIntegrationTest@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)

ヒントも春4.3の @RunWith(SpringRunner.class)より読みやすいと任意の @RunWith(SpringJUnit4ClassRunner.class)宣言を交換することがテストを移行しながら。

+0

したがって、以前のバージョンの '@SpringBootTest(classes = YourApplicationMainClass.class)'と '@ WebIntegrationTest'は' @SpringBootTest(classes = YourApplicationMainClass.class、webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)の1つのステートメントに変換されます。 – VanagaS

関連する問題