Salut, c'est @chan_kaku Cette fois, la série Spring Boot 1.5 deviendra EOL en août de cette année, je voudrais donc essayer de m'en occuper et mentionner les points difficiles.
Spring Boot est un framework qui facilite la création d'applications basées sur le framework Spring. Consultez la documentation officielle (https://spring.io/projects/spring-boot) pour plus d'informations.
--SérieGradle3 → Série Gradle5 --Spring Boot 1.5 series → Spring Boot 2.1 series --Mise à niveau d'autres bibliothèques dépendantes
Afin de l'élever à la série SpringBoot2, j'ai dû augmenter la version de Gradle à 4.4 ou plus, donc j'ai travaillé dessus à partir d'ici Puisque le projet cible a utilisé Gradle Wrapper cette fois, j'ai modifié gradle-wrapper.properties comme suit.
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip #J'ai changé la version ici
Avec le support ci-dessus, le système Spring Boot 2 peut enfin être utilisé, je vais donc augmenter la version ici. Les bases sont décrites dans le wiki Github de Spring Boot à ici. S'il vous plaît
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Ce n'était pas la série boot1.5, mais selon Document, il semble que j'ai dû ajouter ʻio.spring.dependency-management`.
Dans la série Gradle3, Java et Spring Boot ont également été décrits comme suit.
build.gradle
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
Cependant, à partir de la série Gradle 5, la méthode d'écriture a changé et il est maintenant recommandé d'écrire comme un bloc comme suit.
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
La façon dont les dépendances sont écrites a également changé de manière significative. Le style d'écriture jusqu'à la série Gradle 3 est comme ça.
build.gradle
compile('org.springframework.boot:spring-boot-starter')
compile('org.springframework.boot:spring-boot-starter-web')
//.....etc
Fondamentalement, les bibliothèques dépendantes ont été écrites par compile.
Cependant, dans la série Gradle 5, le style d'écriture de ʻimplementation augmente et
compile` est obsolète.
La différence entre «compile» et «implémentation» est simplement l'étendue de la propagation des dépendances.
Par conséquent, j'ai remplacé la partie écrite comme «compile» par «implémentation» comme indiqué ci-dessous.
build.gradle
implementaion('org.springframework.boot:spring-boot-starter')
implementaion('org.springframework.boot:spring-boot-starter-web')
//.....etc
Cela a également été un peu changé. Document officiel
J'écrivais comme ça
build.gradle
jar {
baseName = "hoge"
archiveName = "${baseName}.jar"
version = "1.0.0-SNAPSHOT"
}
Parmi ceux-ci, baseName
et ʻarchiveName` étaient obsolètes, je les ai donc modifiés comme suit selon Document.
build.gradle
jar {
archiveBaseName = "hoge"
archiveFileName = "${archiveBaseName}.jar"
version = "1.0.0-SNAPSHOT"
}
baseName
va à ʻarchiveBaseName Il semble que ʻarchiveName
a été changé en ʻarchiveFileName`
En plus de cela, «l'appendice», etc. ont également été modifiés, veuillez donc consulter le document! !!
Doma2 a été utilisé pour l'accès à la base de données du projet mis à niveau cette fois. Dans les dépendances d'origine, j'ai écrit comme suit.
build.gradle
compile('org.seasar.doma.boot:doma-spring-boot-starter:1.1.0')
Comme vous pouvez le voir dans la manière ci-dessus d'écrire les dépendances, j'ai simplement remplacé compile
par ʻimplementation` et il est resté coincé dans un endroit inattendu.
J'ai eu une erreur disant que je ne peux pas DI car le haricot de Dao n'est pas enregistré dans la classe que je DIing.
Je n'ai pas pu comprendre la cause pendant un moment, mais une fois que j'ai regardé le document de doma2, il y avait une différence par rapport à la build.gradle d'origine, donc
J'ai apporté les modifications suivantes et cela a bien fonctionné pour l'enregistrement de Dao's Bean!
build.gradle
implementation('org.seasar.doma.boot:doma-spring-boot-starter:1.1.1')
implementation("org.seasar.doma:doma:2.24.0")
annotationProcessor("org.seasar.doma:doma:2.24.0")
Jusqu'à présent, cela ne fonctionnait qu'avec le top doma-spring-boot-starter
, mais je devais ajouter'doma'itself avec metaion implémentation.
Il semblait que je devais mettre dans doma
en utilisant ʻannotation Processor Ce «processeur d'annotation» a été ajouté à partir de la série Gradle 5, et la raison pour laquelle il doit être ajouté est que la série Gradle 5 ne prend pas en charge la méthode d'obtention du processeur d'annotation à partir du chemin de classe au moment de la compilation. .. Par conséquent, si vous utilisez non seulement doma mais aussi une bibliothèque qui avait l'habitude d'obtenir le processeur d'annotation à partir du chemin de classe, vous devez ajouter ʻannotation Processor
comme ceci.
jackson est une bibliothèque Java pour le traitement des données au format JSON, qui a été utilisée dans ce projet.
Comme dans l'exemple, quand j'ai simplement remplacé compile
par ʻimplementaion`, j'ai eu une erreur concernant l'enregistrement de bean dans la bibliothèque jackson comme dans doma2.
Cela pourrait être résolu en mettant à jour la version.
Cette fois, j'ai essayé de cibler un projet avec le moins de bibliothèques dépendantes possible pour mesurer la difficulté de cette migration. Cependant, il y avait plus de dépendances que ce à quoi je m'attendais et ce fut une impression difficile pour moi personnellement. Étant donné que la série 1.5 EOL est censée être en août de cette année, nous vous recommandons de déménager le plus tôt possible! J'espère que vous trouverez cet article utile.
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide https://qiita.com/yukina-ge/items/1ca029ed69494bfd36d6 https://qiita.com/opengl-8080/items/6ad642e0b016465891de https://doma.readthedocs.io/en/2.19.2/build/
Recommended Posts