我正在用彈簧引導啓動依賴彈簧啓動應用程序,現在面臨在我的測試案例編譯錯誤,如果我不導入下面的測試依賴儘管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