⇧ 猫も杓子もAIですかね...
Mavenの依存関係をMaven Central SearchのREST APIで検索してはみたものの
表題の件ですが、例の如く、Spring Frameworkの必要な依存関係が分かり辛くて、まずは、Spring Frameworkの依存関係の全量を一覧のリストで確認したいなと思いまして。
どうやら、
⇧ REST APIが用意されておりました。
試してみました。
curl -s 'https://search.maven.org/solrsearch/select?q=g:org.springframework'
結果を少し整形。
{"responseHeader" :{"status":0,"QTime":1,"params" :{"q":"g:org.springframework","core":"","indent":"off","spellcheck":"true","fl":"id,g,a,latestVersion,p,ec,repositoryId,text,timestamp,versionCount","start":"","spellcheck.count":"5","sort":"score desc,timestamp desc,g asc,a asc","rows":"20","wt":"json","version":"2.2"}},"response" :{"numFound":58,"start":0,"docs":[{"id":"org.springframework:spring-instrument","g":"org.springframework","a":"spring-instrument","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782512000,"versionCount":191, ,"text":["org.springframework","spring-instrument",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-web","g":"org.springframework","a":"spring-web","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782512000,"versionCount":240, ,"text":["org.springframework","spring-web",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:framework-docs","g":"org.springframework","a":"framework-docs","latestVersion":"6.0.6","repositoryId":"central","p":"pom","timestamp":1677782511000,"versionCount":7, ,"text":["org.springframework","framework-docs",".pom"],"ec":[".pom"]},{"id":"org.springframework:spring-context","g":"org.springframework","a":"spring-context","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782511000,"versionCount":241, ,"text":["org.springframework","spring-context","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-expression","g":"org.springframework","a":"spring-expression","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782511000,"versionCount":191, ,"text":["org.springframework","spring-expression","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-websocket","g":"org.springframework","a":"spring-websocket","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782511000,"versionCount":159, ,"text":["org.springframework","spring-websocket",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-aop","g":"org.springframework","a":"spring-aop","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782510000,"versionCount":240, ,"text":["org.springframework","spring-aop","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-core","g":"org.springframework","a":"spring-core","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782510000,"versionCount":240, ,"text":["org.springframework","spring-core",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-jdbc","g":"org.springframework","a":"spring-jdbc","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782510000,"versionCount":230, ,"text":["org.springframework","spring-jdbc","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-webmvc","g":"org.springframework","a":"spring-webmvc","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782510000,"versionCount":240, ,"text":["org.springframework","spring-webmvc","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-core-test","g":"org.springframework","a":"spring-core-test","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782509000,"versionCount":7, ,"text":["org.springframework","spring-core-test","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-orm","g":"org.springframework","a":"spring-orm","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782509000,"versionCount":224, ,"text":["org.springframework","spring-orm",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-r2dbc","g":"org.springframework","a":"spring-r2dbc","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782509000,"versionCount":33, ,"text":["org.springframework","spring-r2dbc",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-context-indexer","g":"org.springframework","a":"spring-context-indexer","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782508000,"versionCount":98, ,"text":["org.springframework","spring-context-indexer","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-framework-bom","g":"org.springframework","a":"spring-framework-bom","latestVersion":"6.0.6","repositoryId":"central","p":"pom","timestamp":1677782508000,"versionCount":172, ,"text":["org.springframework","spring-framework-bom",".module",".pom"],"ec":[".module",".pom"]},{"id":"org.springframework:spring-messaging","g":"org.springframework","a":"spring-messaging","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782508000,"versionCount":159, ,"text":["org.springframework","spring-messaging",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-oxm","g":"org.springframework","a":"spring-oxm","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782508000,"versionCount":191, ,"text":["org.springframework","spring-oxm","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-context-support","g":"org.springframework","a":"spring-context-support","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782507000,"versionCount":201, ,"text":["org.springframework","spring-context-support","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-test","g":"org.springframework","a":"spring-test","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782507000,"versionCount":201, ,"text":["org.springframework","spring-test","-sources.jar",".module",".pom","-javadoc.jar",".jar"],"ec":["-sources.jar",".module",".pom","-javadoc.jar",".jar"]},{"id":"org.springframework:spring-webflux","g":"org.springframework","a":"spring-webflux","latestVersion":"6.0.6","repositoryId":"central","p":"jar","timestamp":1677782507000,"versionCount":98, ,"text":["org.springframework","spring-webflux",".module","-sources.jar",".pom","-javadoc.jar",".jar"],"ec":[".module","-sources.jar",".pom","-javadoc.jar",".jar"]}]},"spellcheck" :{"suggestions":[]}}
⇧ という感じで、groupIdがorg.springframeworkの依存関係については、
- spring-instrument
- spring-web
- framework-docs
- spring-context
- spring-expression
- spring-websocket
- spring-aop
- spring-core
- spring-jdbc
- spring-webmvc
- spring-core-test
- spring-orm
- spring-r2dbc
- spring-context-indexer
- spring-framework-bom
- spring-messaging
- spring-oxm
- spring-context-support
- spring-test
- spring-webflux
⇧ 全部で20個でした。
と思ったら、
⇧ 一度のリクエストで20件の制限があるみたいなので、
curl -s 'https://search.maven.org/solrsearch/select?q=g:org.springframework&start=20'
curl -s 'https://search.maven.org/solrsearch/select?q=g:org.springframework&start=40'
で、
curl -s 'https://search.maven.org/solrsearch/select?q=g:org.springframework&start=60'
実行したら、
{"responseHeader":{"status":0,"QTime":1,"params":{"q":"g:org.springframework","core":"","indent":"off","spellcheck":"true","fl":"id,g,a,latestVersion,p,ec,repositoryId,text,timestamp,versionCount","start":"60","spellcheck.count":"5","sort":"score desc,timestamp desc,g asc,a asc","rows":"20","wt":"json","version":"2.2"}},"response":{"numFound":58,"start":60,"docs":[]},"spellcheck":{"suggestions":[]}}
⇧ ってなったので、58件が全量らしい。
- spring-instrument
- spring-web
- framework-docs
- spring-context
- spring-expression
- spring-websocket
- spring-aop
- spring-core
- spring-jdbc
- spring-webmvc
- spring-core-test
- spring-orm
- spring-r2dbc
- spring-context-indexer
- spring-framework-bom
- spring-messaging
- spring-oxm
- spring-context-support
- spring-test
- spring-webflux
- spring-aspects
- spring-tx
- spring-beans
- spring-jcl
- spring-jms
- spring
- spring-webmvc-portlet
- spring-instrument-tomcat
- springloaded
- spring-struts
- spring-tuple
- spring-tuple-parent
- spring-asm
- spring-parent
- spring-agent
- spring-webmvc-struts
- spring-tomcat-weaver
- spring-binding
- spring-webflow
- spring-jdo
- spring-support
- spring-jpa
- spring-jmx
- spring-mock
- spring-hibernate3
- spring-hibernate2
- spring-toplink
- spring-dao
- spring-ibatis
- spring-jca
- spring-portlet
- spring-remoting
- spring-hibernate
- spring-beandoc
- spring-ldap
- spring-full
- spring-ojb
- beandoc
う~む、多いな...
そして、org.springframeworkの他にも、
- org.springframework.boot
- org.springframework.cloud
- org.springframework.security
- org.springframework.data
- org.springframework.integration
- org.springframework.webflow
- org.springframework.roo
- org.springframework.retry
- org.springframework.osgi
- org.springframework.kafka
- org.springframework.shell
- org.springframework.ldap
- org.springframework.social
- org.springframework.session
- org.springframework.amqp
- org.springframework.batch
- org.springframework.ws
- org.springframework.hateoas
- org.springframework.plugin
- org.springframework.restdocs
- org.springframework.statemachine
- org.springframework.extensions
- org.springframework.xd
- org.springframework.experimental
- org.springframework.richclient
- org.springframework.android
- org.springframework.geode
- org.springframework.build
- org.springframework.mobile
- org.springframework.vault
- org.springframework.credhub
- org.springframework.graphql
- org.springframework.flex
- org.springframework.analytics
- org.springframework.scala
- org.springframework.pulsar
- org.springframework.uaa
- org.springframework.metrics
- org.springframework.javaconfig
- org.springframework.commons
- org.springframework.samples
- org.springframework.beandoc
- org.springframework.migrationanalyzer
- org.springframework.spring-modules
- org.springframework.guice
- org.springframework.spring
- org.springframework.aop
- org.springframework.sync
- org.springframework.beans
- org.springframework.maven
- org.springframework.test
- org.springframework.kotlin
- org.springframework.aws
- org.springframework.expression
- org.springframework.internal
- org.springframework.spring-context
- org.springframework.core
- org.springframework.spinnaker
- org.springframework.context
のようなgroupIdがあるそうな...
カオス...
もっと気軽に一覧を確認できるようにして欲しい...
毎度モヤモヤ感が半端ない...
今回はこのへんで。