Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5https://www.std.ch/blog/springboot/migration11?&atomFri, 29 Mar 2024 07:55:13 +0000stack.ch
https://stack.ch/
ac8c5d76-eda1-11ee-8c11-005056bb85fbSimtech AG - Blog - Spring Boot Blogs - Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5
https://www.std.ch/blog/springboot/migration11
ac8c5e82-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Blog Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5
https://www.std.ch/blog/springboot/migration11
ac8c5fdf-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000
https://www.std.ch/blog/springboot/migration11
ac8c616b-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Das Rad dreht sich immer schneller mit Spring Boot und Java. Fast täglich könnten wir unsere Anwendung auf neue Versionen und Libraries migrieren. Eine gröbere Umstellung ist der Wechsel von Java 8 nach Java 11 und JUnit4 nach JUnit5. Wir zeigen anhand eines Beispiels die minimale Migration.
https://www.std.ch/blog/springboot/migration11
ac8c62fe-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Laden Sie das Maven Projekt vorlage.zip herunter. Starten Sie Eclipse oder eine andere IDE und importieren Sie das Vorlagen Projekt (JumpStart):In Eclipse wird das Projekt geladen mit Java 8 und JUnit 4. Testen Sie das Projekt über das Terminal via -> mvn clean install -U Der Maven Build sollte fehlerfrei funktionieren:
https://www.std.ch/blog/springboot/migration11
ac8c694f-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Wir wechseln nun die Java Version von 8 auf 11:Das Projekt basiert nun auf Java 11, testen Sie den Maven BuildDas Projekt funktioniert immer noch ohne Fehler.
https://www.std.ch/blog/springboot/migration11
ac8c6ae6-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Im Maven POM File migrieren wir den Spring Stack von Version 2.1.8 nach 2.3.3:<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>Der Maven Build sollte immer noch funktionieren.
https://www.std.ch/blog/springboot/migration11
ac8c6cdc-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Wir definieren im Maven pom.xml die Java 11 Version:<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>>
<java.version>11</java.version>
</properties>Der Maven Build sollte immer noch funktionieren.
https://www.std.ch/blog/springboot/migration11
ac8c6f04-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Die Migration nach JUnit 5 erfolgt via das spring-boot-starter-test. Passen Sie die Dependancy wie folgt an:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>Die Unit Tests ergeben einen Kompiliationsfehler.Öffnen Sie die Test Datei JumpstartApplicationJpaTests.java und entfernen Sie die fehlerhaften import Statements.Entfernen Sie die @RunWith(SpringRunner.class) Annotationen.Importieren Sie die Annotation @Test und die assert Anweisungen neu mit den Jupiter Klassen:package ch.std.jumpstart;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
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.boot.web.server.LocalServerPort;
import ch.std.jumpstart.dto.CityDTO;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class JumpstartApplicationJpaTests {
...
}Öffnen Sie die Test Datei JumpstartApplicationTests.java und korrigieren Sie die Fehler wie folgt:package ch.std.jumpstart;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import ch.std.jumpstart.rest.CityAutoCompleteController;
@ExtendWith(SpringExtension.class)
@WebMvcTest(CityAutoCompleteController.class)
@ActiveProfiles("test")
public class JumpstartApplicationTests {
@Autowired
private MockMvc mvc;
@Test
public void contextLoads() {
}
@Test
public void testCityAutoCompleteController() throws Exception {
MvcResult mvcResult = mvc.perform(get("/rest/auto/cities?value=Bern").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andReturn();
String expected = "[Bern]";
String actual = mvcResult.getResponse().getContentAsString();
JSONAssert.assertEquals(expected, actual, false);
}
}Der Maven Build sollte wieder funktionieren und die Migration ist abgeschlossen.
https://www.std.ch/blog/springboot/migration11
ac8c7671-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000Die JUnit 5 Libraries werden durch die Spring Boot Libraries referenziert. Referenzieren Sie die JUnit Libraries nie direkt via Eclipse.Die migrierte Anwendung finden Sie hier migriert.zip
https://www.std.ch/blog/springboot/migration11
ac8c7c76-eda1-11ee-8c11-005056bb85fbFri, 29 Mar 2024 07:55:13 +0000War dieser Blog für Sie wertvoll. Wir danken für jede Anregung und FeedbackÜber uns
https://www.std.ch/about
Fri, 29 Mar 2024 07:55:13 +0000ac8c8042-eda1-11ee-8c11-005056bb85fbAktuell
https://www.std.ch/
Fri, 29 Mar 2024 07:55:13 +0000ac8c80ef-eda1-11ee-8c11-005056bb85fbAGB
https://www.std.ch/agb
Fri, 29 Mar 2024 07:55:13 +0000ac8c8194-eda1-11ee-8c11-005056bb85fbBildungswege
https://www.std.ch/bildungswege
Fri, 29 Mar 2024 07:55:13 +0000ac8c8241-eda1-11ee-8c11-005056bb85fbBlog
https://www.std.ch/blog
Fri, 29 Mar 2024 07:55:13 +0000ac8c82e3-eda1-11ee-8c11-005056bb85fbRufen Sie mich an
https://www.std.ch/callus
Fri, 29 Mar 2024 07:55:13 +0000ac8c8397-eda1-11ee-8c11-005056bb85fbCharts
https://www.std.ch/charts
Fri, 29 Mar 2024 07:55:13 +0000ac8c844f-eda1-11ee-8c11-005056bb85fbConsulting
https://www.std.ch/consulting
Fri, 29 Mar 2024 07:55:13 +0000ac8c850e-eda1-11ee-8c11-005056bb85fbKontakt
https://www.std.ch/contact
Fri, 29 Mar 2024 07:55:13 +0000ac8c8611-eda1-11ee-8c11-005056bb85fbAusbildung/Kurse
https://www.std.ch/education
Fri, 29 Mar 2024 07:55:13 +0000ac8c86ca-eda1-11ee-8c11-005056bb85fbSoftware Engineering
https://www.std.ch/engineering
Fri, 29 Mar 2024 07:55:13 +0000ac8c877d-eda1-11ee-8c11-005056bb85fbFreelancer
https://www.std.ch/freelancer
Fri, 29 Mar 2024 07:55:13 +0000ac8c884c-eda1-11ee-8c11-005056bb85fbImpressum
https://www.std.ch/impressum
Fri, 29 Mar 2024 07:55:13 +0000ac8c891f-eda1-11ee-8c11-005056bb85fbKursleiter
https://www.std.ch/kursleiter
Fri, 29 Mar 2024 07:55:13 +0000ac8c89c2-eda1-11ee-8c11-005056bb85fbNetzwerk
https://www.std.ch/network
Fri, 29 Mar 2024 07:55:13 +0000ac8c8bbc-eda1-11ee-8c11-005056bb85fbReferenzen
https://www.std.ch/references
Fri, 29 Mar 2024 07:55:13 +0000ac8c8c8c-eda1-11ee-8c11-005056bb85fbSitemap
https://www.std.ch/sitemap
Fri, 29 Mar 2024 07:55:13 +0000ac8c8d4e-eda1-11ee-8c11-005056bb85fbTools
https://www.std.ch/tools
Fri, 29 Mar 2024 07:55:13 +0000ac8c8e7f-eda1-11ee-8c11-005056bb85fbVision
https://www.std.ch/vision
Fri, 29 Mar 2024 07:55:13 +0000ac8c8f2f-eda1-11ee-8c11-005056bb85fb