SlideShare una empresa de Scribd logo
1 de 16
Spring IO Platform
再考
JSUG 勉強会 2018/04/18 LT
ikeyat
自己紹介
•JSUGスタッフ
•某SIerでソフトウェアアーキテクト
(実態は管理業務多め・・・)
Spring IO Platformとは?
•Springが、各Springプロジェクトおよび3rd-partyラ
イブラリの推奨バージョン組み合わせを提供
•利用者は必要な3rd-partyライブラリだけをピックア
ップできる
http://platform.spring.io/platform/
Spring IO Platformとは?
http://platform.spring.io/platform/
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>Cairo-RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
pom.xml
…
Spring IO Platformの利用、
使用するリリーストレイン(バージ
ョン組み合わせの版)を宣言
Cairo-RELEASEにおける推
奨バージョン
5.0.5が自動的に選定
Spring IO Platformとは?
org.springframework.boot:
spring-boot-dependencies
org.springframework.boot:
spring-boot-starter-parent
io.spring.platform:
platform-bom
開発するアプリケーション
Parent
Parent
Import
Spring IO Platformとは?
org.springframework.boot:
spring-boot-dependencies
org.springframework.boot:
spring-boot-starter-parent
io.spring.platform:
platform-bom
開発するアプリケーション
Parent
Parent
Import
Spring Boot?
Spring Boot Dependencies
•Spring Bootが、各Springプロジェクトおよび3rd-
partyライブラリの推奨バージョン組み合わせを提供
•利用者は必要な3rd-partyライブラリだけをピックア
ップできる
デジャブ・・・
IO PF v.s. Boot Deps
何が違う?どういう関係?
何でBoot Depsが親?
⇨比較してみた
①管理対象のライブラリ数
IO PF v.s. Boot Deps
IO PF > Boot Deps
https://mvnrepository.com/artifact/io.spring.platform/platform-bom/Cairo-RELEASE
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/2.0.1.RELEASE
699 > 531
Boot Depsが管理する3rd-party
ライブラリに+αのライブラリを追加している
IO PFが追加するライブラリの例1
<spring-security-jwt.version>1.0.9.RELEASE</spring-security-jwt.version>
<spring-security-oauth.version>2.2.1.RELEASE</spring-security-oauth.version>
<spring-social.version>1.1.6.RELEASE</spring-social.version>
<spring-social-twitter.version>1.1.2.RELEASE</spring-social-twitter.version>
<spring-web-flow.version>2.5.0.RELEASE</spring-web-flow.version>
...
<commons-beanutils.version>1.9.3</commons-beanutils.version>
<commons-cli.version>1.4</commons-cli.version>
<commons-collections.version>3.2.2</commons-collections.version>
<commons-fileupload.version>1.3.3</commons-fileupload.version>
<commons-io.version>2.6</commons-io.version>
<commons-httpclient.version>3.1</commons-httpclient.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-logging.version>1.2</commons-logging.version>
al.maven.org/maven2/io/spring/platform/platform-bom/Cairo-RELEASE/platform-bom-Cairo-RELE
IO PFが追加するライブラリの例2
<javax-batch.version>1.0.1</javax-batch.version>
<javax-cdi.version>1.2</javax-cdi.version>
<javax-ejb.version>3.2.2</javax-ejb.version>
<javax-el.version>3.0.1-b04</javax-el.version>
<javax-enterprise-concurrent.version>1.0</javax-enterprise-concurrent.version>
<javax-faces.version>2.2</javax-faces.version>
<javax-inject.version>1</javax-inject.version>
<javax-interceptor.version>1.2.2</javax-interceptor.version>
<javax-jax-rs.version>2.0.1</javax-jax-rs.version>
<javax-jax-ws.version>2.3.0</javax-jax-ws.version>
<javax-jsp.version>2.3.2-b02</javax-jsp.version>
<javax-jstl.version>1.2.1</javax-jstl.version>
...
<tiles.version>3.0.8</tiles.version>
al.maven.org/maven2/io/spring/platform/platform-bom/Cairo-RELEASE/platform-bom-Cairo-RELE
②テスト内容の違い
IO PF v.s. Boot Deps
IO PF:
各springプロジェクトと各ライブラリの
互換性テスト
Boot Deps(Boot本体):
Spring Bootと各ライブラリの結合テスト
IO PFテスト実行例
https://build.spring.io/build/result/viewBuildResultsTests.action?pageIndex=1&buildKey=PLATFORM-COM-JOB1&pageSize=50&buildNumber=791
各Springモジュール
のjunitを実行
17,880件
③なぜBoot Depsが親?
IO PF v.s. Boot Deps
(IO PFコミッタから聞いたうろ覚え情報)
・Spring Bootが先行リリースしていた
Spring Boot 1.0.0.RELEASE: 2014/4
Spring IO PF 1.0.0.RELEASE: 2014/6
・Spring Bootの方がリリース頻度が多い
・Spring Bootのバージョンセットとの整合性
Spring IO Platformまとめ
• 互換性テストの安心感を提供
• 非Spring Boot、
JSP等のJavaEE利用時への配慮
• commons系などUtil系ライブラリもカ
バー
Boot Deps+αとして
Bootユーザーにも恩恵を授けている
(発表後記)本LTのきっかけ
Spring IO Platformの+αの価値、意味を
改めて確認し、EOLへの課題感を共有したかった
https://spring.io/blog/2018/04/09/spring-io-platform-end-of-life-announcement

Más contenido relacionado

La actualidad más candente

Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupToshiaki Maki
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015Yahoo!デベロッパーネットワーク
 
iOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsiOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsYusuke Kita
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Koji Hasegawa
 
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化健一 辰濱
 

La actualidad más candente (6)

Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
 
iOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsiOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotips
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
Lt 20150711
Lt 20150711Lt 20150711
Lt 20150711
 
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化
 

Similar a Spring IO Platform再考

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 ReportYu Sudo
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介Sunao Tomita
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみたTakeo Noda
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力Keiji Ariyama
 
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fumiya Sakai
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
Lightweight-Stream-APIのあるAndroidアプリ開発
Lightweight-Stream-APIのあるAndroidアプリ開発Lightweight-Stream-APIのあるAndroidアプリ開発
Lightweight-Stream-APIのあるAndroidアプリ開発Shinobu Okano
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Hironori Sekine
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Yuki Suga
 
Work Automate with Power Automate
Work Automate with Power AutomateWork Automate with Power Automate
Work Automate with Power AutomateTomoyuki Obi
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門Yasutaka Sugamura
 

Similar a Spring IO Platform再考 (20)

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
Hello Java
Hello JavaHello Java
Hello Java
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
Lightweight-Stream-APIのあるAndroidアプリ開発
Lightweight-Stream-APIのあるAndroidアプリ開発Lightweight-Stream-APIのあるAndroidアプリ開発
Lightweight-Stream-APIのあるAndroidアプリ開発
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
 
Reactor Netty & Apache Kafka Stack #jsug
Reactor Netty & Apache Kafka Stack #jsugReactor Netty & Apache Kafka Stack #jsug
Reactor Netty & Apache Kafka Stack #jsug
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2
 
Work Automate with Power Automate
Work Automate with Power AutomateWork Automate with Power Automate
Work Automate with Power Automate
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 

Más de ikeyat

What's new in Spring Batch 5
What's new in Spring Batch 5What's new in Spring Batch 5
What's new in Spring Batch 5ikeyat
 
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性ikeyat
 
What's New in Spring Boot 2.5
What's New in Spring Boot 2.5What's New in Spring Boot 2.5
What's New in Spring Boot 2.5ikeyat
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tipsikeyat
 
既存アプリケーションをJava11に対応させる際に 知っておくべきこと
既存アプリケーションをJava11に対応させる際に 知っておくべきこと既存アプリケーションをJava11に対応させる際に 知っておくべきこと
既存アプリケーションをJava11に対応させる際に 知っておくべきことikeyat
 
建築に学ぶマイクロサービス
建築に学ぶマイクロサービス建築に学ぶマイクロサービス
建築に学ぶマイクロサービスikeyat
 
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyBeginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyikeyat
 

Más de ikeyat (7)

What's new in Spring Batch 5
What's new in Spring Batch 5What's new in Spring Batch 5
What's new in Spring Batch 5
 
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
 
What's New in Spring Boot 2.5
What's New in Spring Boot 2.5What's New in Spring Boot 2.5
What's New in Spring Boot 2.5
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips
 
既存アプリケーションをJava11に対応させる際に 知っておくべきこと
既存アプリケーションをJava11に対応させる際に 知っておくべきこと既存アプリケーションをJava11に対応させる際に 知っておくべきこと
既存アプリケーションをJava11に対応させる際に 知っておくべきこと
 
建築に学ぶマイクロサービス
建築に学ぶマイクロサービス建築に学ぶマイクロサービス
建築に学ぶマイクロサービス
 
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyBeginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
 

Spring IO Platform再考