Mavenでコンパイルエラーを取得する:
[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リポジトリにはjarが存在するようです:
ただし、そのjarにはコンパイル済みクラスが含まれていません。 META-INFディレクトリのみ:
それは設計によるものですか? 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>
spring-boot-starter-test
は、他のすべてのSpring Bootスターターと同様に、実際には他の多くの依存関係を推移的に取り込む単なるポンポンです。 pomのみの依存関係が気に入らないビルドシステムを満足させるためのjarファイルのみがあります。
Spring Boot 1.4からSpring Boot 1.5にアプリケーションをアップグレードしたようです。 Spring Boot 1.5は、org.springframework.boot.test.SpringApplicationConfiguration
など、1.4で非推奨になった多くのクラスを削除します。
Spring Boot 1.4.4.RELEASEに戻って非推奨の警告をすべて修正することをお勧めします。これで、Spring Boot 1.5.1.RELEASEに問題なくアップグレードできるはずです。
リリースでは、@SpringApplicationConfiguration
注釈はもう存在しません。新しい注釈は次のとおりです。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = YourApplicationMainClass.class)
@WebAppConfiguration
このエラーは、Spring Bootの1.4から1.5へのアップグレードが原因であるため、1.4で導入されたいくつかの新しいクラスは、1.5で最終的に削除される既存のクラスの一部を廃止したことに注意することが重要です(下から)。そのような詳細は、次の場所にあります: Spring boot release notes
ウェブサイトから引用(編集):
さらに、Spring Boot 1.4(およびそれ以上)は、Spring Bootテストを実行できるさまざまな方法を合理化および簡素化しようとします。新しい@SpringBootTestアノテーションを使用するには、以下を移行する必要があります。
From
@SpringApplicationConfiguration(classes=MyConfig.class)
to@SpringBootTest(classes=MyConfig.class)
@ContextConfiguration(classes=MyConfig.class, loader=SpringApplicationContextLoader.class)
から@SpringBootTest(classes=MyConfig.class)
@IntegrationTest
から@SpringBootTest(webEnvironment=WebEnvironment.NONE)
へ
@IntegrationTest
with@WebAppConfiguration
to@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)
@WebIntegrationTest
から@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)
へヒントテストの移行中に、
@RunWith(SpringJUnit4ClassRunner.class)
宣言をSpring 4.3の読みやすい@RunWith(SpringRunner.class)
に置き換えることもできます。 。