我正在用弹簧引导启动依赖弹簧启动应用程序,现在面临在我的测试案例编译错误,如果我不导入下面的测试依赖尽管Spring-boot-starter-parent中存在Spring-boot-test依赖关系,但它们必须手动导入 - 为什么?
- 春天开机测试
- 弹簧试验
- assertj核心
我的理解是,这是目前已经在春天开机起动父母,我可以看到他们。然而,由于编译时错误,我不得不将其导入的pom.xml如下,但后来我得到警告,
仿型托管版本1.5.6.RELEASE春天开机测试
仿型托管版本4.3.10.RELEASE春季测试
和similiarly为assertj核心
你能看到的警告发生在这里的pom.xml 的地方
我的pom.xml的就是如果我不包括在测试的依赖性发生编译错误低于如下我的代码
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<json.version>20160810</json.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.6.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>1.5.6.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.10.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
零件。如果依赖关系不存在,则不能导入@SpringBootTest和TestRestTemplate。
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import com.fasterxml.jackson.core.JsonProcessingException;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class MatchControllerTest {
// Test RestTemplate to invoke the APIs.
@Autowired
private TestRestTemplate testRestTemplate;
//....and other part of the code
为什么会发生这种情况?
- 为什么是具有手动包括在pom.xml如果它们已经存在于所述弹簧引导起动父测试依赖
- 一旦包括在内,它示出了duplcating管理版本警告(大概是这样的......)。
我可能在做一些愚蠢/错误的事 - 请帮忙!
可能是坛子wouldnt已经正确下载,做mvn干净安装或去下maven存储库(.m2)文件夹,看看是否有任何问题与下载的jar。简单地删除和右键项目 - > Maven - >>更新项目。 – Barath