{"id":662,"date":"2023-07-02T22:33:29","date_gmt":"2023-07-02T13:33:29","guid":{"rendered":"https:\/\/hirabay.net\/?p=662"},"modified":"2023-07-02T22:36:30","modified_gmt":"2023-07-02T13:36:30","slug":"%e3%80%90%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e7%ae%a1%e7%90%86%e3%82%92%e5%8a%b9%e7%8e%87%e5%8c%96%ef%bc%81%e3%80%91java%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%a7","status":"publish","type":"post","link":"https:\/\/hirabay.net\/?p=662","title":{"rendered":"\u3010\u30e9\u30a4\u30d6\u30e9\u30ea\u7ba1\u7406\u3092\u52b9\u7387\u5316\uff01\u3011Java\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306eBOM\u306e\u751f\u6210\u30fb\u5229\u7528\u65b9\u6cd5\u306e\u89e3\u8aac"},"content":{"rendered":"\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u7ba1\u7406\u3092\u52b9\u7387\u5316\u3059\u308b\u624b\u6bb5\u3068\u3057\u3066BOM (Bill of Materials) \u306e\u751f\u6210\u3068\u5229\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>BOM\u3092\u5229\u7528\u3059\u308b\u3068version\u304c\u4e00\u5143\u7ba1\u7406\u3067\u304d\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3054\u3068\u306b\u6700\u9069\u306aversion\u304c\u4f55\u304b\u60a9\u307e\u306a\u304f\u3066\u826f\u304f\u306a\u308a\u307e\u3059\uff01<\/p>\n\n\n\n<div class=\"wp-block-sgb-say\"><div class=\"sgb-block-say sgb-block-say--left\"><div class=\"sgb-block-say-avatar\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/01\/c90be45c419f1b74db0f1d5a262d000d.png\" alt=\"\u3072\u3089\u3079\u30fc\" width=\"80\" height=\"80\" style=\"border-color:#eaedf2\"><div class=\"sgb-block-say-avatar__name\">\u3072\u3089\u3079\u30fc<\/div><\/div><div class=\"sgb-block-say-text\"><div class=\"sgb-block-say-text__content\" style=\"color:#333;border-color:#d5d5d5;background-color:#FFF\">\n<p>\u3053\u306e\u8a18\u4e8b\u3092\u8aad\u3080\u3068\u3053\u3093\u306a\u8ab2\u984c\u304c\u8efd\u6e1b\u3055\u308c\u307e\u3059\uff01<\/p>\n\n\n\n<p>\u30fb\u3069\u306eversion\u3092\u4f7f\u3048\u3070\u3044\u3044\u306e\u304b\u8ff7\u3046<\/p>\n\n\n\n<p>\u30fb\u8106\u5f31\u6027\u5bfe\u5fdc\u3067\u306eversion up\u304c\u3081\u3093\u3069\u3046<\/p>\n<span class=\"sgb-block-say-text__before\" style=\"border-right-color:#d5d5d5\"><\/span><span class=\"sgb-block-say-text__after\" style=\"border-right-color:#FFF\"><\/span><\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/c4179872\/public_html\/hirabay.net\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>110<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/c4179872\/public_html\/hirabay.net\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>115<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/c4179872\/public_html\/hirabay.net\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>122<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">\n  <li class=\"first\">\n    <a href=\"#i-0\">BOM\u306e\u751f\u6210\u65b9\u6cd5<\/a>\n  <\/li>\n  <li>\n    <a href=\"#i-1\">BOM\u3092\u5229\u7528\u3059\u308b<\/a>\n  <\/li>\n  <li>\n    <a href=\"#i-2\">\u7279\u5b9a\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7279\u5b9a\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3060\u3051\u5225version\u3092\u4f7f\u3046<\/a>\n  <\/li>\n  <li class=\"last\">\n    <a href=\"#i-3\">\u30e1\u30a4\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306eversion\u3054\u3068\u3001\u8907\u6570\u306ebom\u3092\u751f\u6210\u3059\u308b<\/a>\n  <\/li>\n<\/ul>\n\n      \n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">BOM\u306e\u751f\u6210\u65b9\u6cd5<\/h2>\n\n\n\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Gradle\u3092\u7528\u3044\u305fBOM\u306e\u751f\u6210\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n<p><\/p><div class=\"memo \"><div class=\"memo_ttl dfont\"> \u306a\u305cGradle\uff1f<\/div>\u5f8c\u8ff0\u3059\u308b\u30e1\u30a4\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306eversion\u3054\u3068\u8907\u6570\u306eBOM\u3092\u751f\u6210\u3059\u308b\u306e\u304c\u3084\u308a\u3084\u3059\u3044\u304b\u3089\u3067\u3059\uff01<\/div>\n\n\n\n<p>BOM\u3092\u751f\u6210\u3059\u308b\u30ea\u30dd\u30b8\u30c8\u30ea\u306f<code>build.gradle<\/code>\u306e\u307f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3059\u308c\u3070OK\u3067\u3059\uff01<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-groovy\" data-file=\"build.gradle\" data-lang=\"Groovy\"><code>plugins {\n    \/\/ bom\u751f\u6210\u306b\u5fc5\u8981\u306a\u30d7\u30e9\u30b0\u30a4\u30f3\n    id 'java-platform'\n    id 'maven-publish'\n}\n\ngroup = 'hirabay.bom'\nversion = '0.0.1'\n\njavaPlatform {\n    allowDependencies()\n}\n\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    \/\/ constraints\u3067\u304f\u304f\u308b\u3068bom\u5229\u7528\u8005\u5074\u3067version\u6307\u5b9a\u304c\u3044\u3089\u306a\u304f\u306a\u308b\n    \/\/ \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u4f55\u3082\u8d77\u304d\u306a\u3044\uff08\u52dd\u624b\u306b\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u8ffd\u52a0\u3055\u308c\u305f\u308a\u3057\u306a\u3044\uff09\n    constraints {\n        api 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.2'\n        api 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.2'\n    }\n\n    \/\/ bom\u306e\u4e2d\u306bbom\u3092\u542b\u3081\u308b\u3053\u3068\u3082\u53ef\u80fd\n    api platform('org.springframework.boot:spring-boot-dependencies:3.0.8')\n    api platform('org.springframework.cloud:spring-cloud-dependencies:2022.0.3')\n}\n\npublishing {\n    publications {\n        mavenJava(MavenPublication) {\n            group = 'hirabay.bom' \/\/ \u672a\u6307\u5b9a\u306e\u5834\u5408\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306egroup\u3092\u4f7f\u7528\n            artifactId = 'sample-bom' \/\/ \u672a\u6307\u5b9a\u306e\u5834\u5408\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u4f7f\u7528\n            version = '0.0.1'  \/\/ \u672a\u6307\u5b9a\u306e\u5834\u5408\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eversion\u3092\u4f7f\u7528\n            from components.javaPlatform\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067 publish\u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001<code>hirabay.bom:sample-bom:0.0.1<\/code>\u304c\u5229\u7528\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\uff01<\/p>\n\n\n\n<p>\u203bpublish\u306e\u3053\u308c\u4ee5\u4e0a\u306e\u8a2d\u5b9a\u306f\u3001publish\u5148\u306b\u3088\u3063\u3066\u5909\u308f\u308b\u305f\u3081\u7701\u7565\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-1\">BOM\u3092\u5229\u7528\u3059\u308b<\/h2>\n\n\n\n<div class=\"wp-block-sgb-tab\"><div class=\"post-tab cf\"><label class=\"tab1 tab-active\">Gradle<\/label><label class=\"tab2\">Maven<\/label><\/div>\n<div class=\"wp-block-sgb-tab-item post-tab__content tab1 tab-active\">\n<p>bom\u306e\u5229\u7528\u306fgradle\u306e\u6a19\u6e96\u6a5f\u80fd\u3067\u3082\u53ef\u80fd\u306a\u306e\u3067\u3059\u304c\u3001<code>io.spring.dependency-management<\/code>\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u4fbf\u5229\u3067\u3059\uff01<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-groovy\" data-file=\"build.gradle\" data-lang=\"Groovy\"><code>plugins {\n\t...\n\t\n\t\/\/ BOM\u306e\u5229\u7528\u304c\u4fbf\u5229\u306b\u306a\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\n\tid 'io.spring.dependency-management' version '1.1.0'\n}\n\n...\n\nrepositories {\n\tmavenCentral()\n\tmavenLocal() \/\/ \u304a\u8a66\u3057\u691c\u8a3c\u3067\u306fMavenLocal\u3092\u4f7f\u3046\u3068\u30b9\u30e0\u30fc\u30ba \n}\n\n\/\/ \u5229\u7528\u3059\u308bBOM\u3092\u5b9a\u7fa9\u3059\u308b\uff08bom\u3092\u8ffd\u52a0\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u72ec\u81ea\u306ebom\u306b\u5185\u5305\u3055\u305b\u308b\u3068\u4fbf\u5229\uff09\ndependencyManagement {\n\timports {\n\t\tmavenBom \"hirabay.bom:sample-bom:0.0.1\"\n\t}\n}\n\ndependencies {\n\t\/\/ BOM\u306b\u542b\u307e\u308c\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3042\u308c\u3070\u3001version\u3092\u8a18\u8f09\u3057\u306a\u304f\u3066\u826f\u3044\n\t\n\timplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter'\n\timplementation 'org.springframework.cloud:spring-cloud-starter-gateway'\n\n\ttestImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test'\n\ttestImplementation 'org.springframework.boot:spring-boot-starter-test'\n}<\/code><\/pre><\/div>\n\n\n\n<p>version\u306f\u6307\u5b9a\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001bom\u5074\u3067\u5b9a\u7fa9\u3057\u305fversion\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u53d6\u308a\u8fbc\u307e\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff01<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"57\" src=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-1024x57.png\" alt=\"\" class=\"wp-image-667\" srcset=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-1024x57.png 1024w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-300x17.png 300w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-768x43.png 768w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-1536x86.png 1536w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-2048x115.png 2048w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/cea40348bf5fd7f50f43ad45d66f8733-940x53.png 940w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n\n\n\n<p>\u203bIntellij\u753b\u9762\uff08\u5de6\uff1aExternal Libraries\u3001\u53f3\uff1abuild.gradle\uff09<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-sgb-tab-item post-tab__content tab2\">\n<p>dependencyManagement\u3068\u3044\u3046\u30bf\u30b0\u3067bom\u3092import\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-xml\" data-file=\"pom.xml\" data-lang=\"XML\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n\txsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\n\t&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n\t&lt;parent&gt;\n\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t&lt;artifactId&gt;spring-boot-starter-parent&lt;\/artifactId&gt;\n\t\t&lt;version&gt;3.1.1&lt;\/version&gt;\n\t\t&lt;relativePath\/&gt; &lt;!-- lookup parent from repository --&gt;\n\t&lt;\/parent&gt;\n\t&lt;groupId&gt;rhirabay.bom&lt;\/groupId&gt;\n\t&lt;artifactId&gt;maven-user&lt;\/artifactId&gt;\n\t&lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\n\t&lt;name&gt;maven-user&lt;\/name&gt;\n\t&lt;description&gt;Demo project for Spring Boot&lt;\/description&gt;\n\t&lt;properties&gt;\n\t\t&lt;java.version&gt;17&lt;\/java.version&gt;\n\t&lt;\/properties&gt;\n\t&lt;!-- bom\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u306fversion\u3092\u8a18\u8f09\u3057\u306a\u304f\u3066\u826f\u3044 --&gt;\n\t&lt;dependencies&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.mybatis.spring.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;mybatis-spring-boot-starter&lt;\/artifactId&gt;\n\t\t&lt;\/dependency&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-cloud-starter-gateway&lt;\/artifactId&gt;\n\t\t&lt;\/dependency&gt;\n\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-boot-starter-test&lt;\/artifactId&gt;\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\n\t\t&lt;\/dependency&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;io.projectreactor&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;reactor-test&lt;\/artifactId&gt;\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\n\t\t&lt;\/dependency&gt;\n\t&lt;\/dependencies&gt;\n\t&lt;!-- dependencyManagement\u30bf\u30b0\u3067bom\u3092\u5b9a\u7fa9--&gt;\n\t&lt;dependencyManagement&gt;\n\t\t&lt;dependencies&gt;\n\t\t\t&lt;dependency&gt;\n\t\t\t\t&lt;groupId&gt;hirabay.bom&lt;\/groupId&gt;\n\t\t\t\t&lt;artifactId&gt;sample-bom&lt;\/artifactId&gt;\n\t\t\t\t&lt;version&gt;0.0.1&lt;\/version&gt;\n\t\t\t\t&lt;type&gt;pom&lt;\/type&gt;\n\t\t\t\t&lt;scope&gt;import&lt;\/scope&gt;\n\t\t\t&lt;\/dependency&gt;\n\t\t&lt;\/dependencies&gt;\n\t&lt;\/dependencyManagement&gt;\n&lt;\/project&gt;\n<\/code><\/pre><\/div>\n\n\n\n<p>version\u306f\u6307\u5b9a\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001bom\u5074\u3067\u5b9a\u7fa9\u3057\u305fversion\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u53d6\u308a\u8fbc\u307e\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff01<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"88\" src=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-1024x88.png\" alt=\"\" class=\"wp-image-664\" srcset=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-1024x88.png 1024w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-300x26.png 300w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-768x66.png 768w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-1536x133.png 1536w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-2048x177.png 2048w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/dce2ac7d3972606b060b387b294bd736-940x81.png 940w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n\n\n\n<p>\u203bIntellij\u753b\u9762\uff08\u5de6\uff1aExternal Libraries\u3001\u53f3\uff1apom.xml\uff09<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-2\">\u7279\u5b9a\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7279\u5b9a\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3060\u3051\u5225version\u3092\u4f7f\u3046<\/h2>\n\n\n\n<p>bom\u306b\u3088\u308a\u30e9\u30a4\u30d6\u30e9\u30ea\u306eversion\u306e\u4e00\u5143\u7ba1\u7406\u304c\u3067\u304d\u307e\u3057\u305f\u304c\u3001\u5834\u5408\u306b\u3088\u3063\u3066\u306fbom\u3067\u5b9a\u7fa9\u3057\u305fversion\u4ee5\u5916\u3092\u4f7f\u7528\u3057\u305f\u3044\u30b1\u30fc\u30b9\u3082\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u305d\u3093\u306a\u6642\u306f\u3001bom\u5229\u7528\u524d\u3068\u540c\u69d8\u306b\u4f8b\u5916\u7684\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3060\u3051version\u3092\u6307\u5b9a\u3059\u308c\u3070OK\u3067\u3059\uff01<\/p>\n\n\n\n<div class=\"wp-block-sgb-tab\"><div class=\"post-tab cf\"><label class=\"tab1 tab-active\">Gradle<\/label><label class=\"tab2\">Maven<\/label><\/div>\n<div class=\"wp-block-sgb-tab-item post-tab__content tab1 tab-active\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-1024x43.png\" alt=\"\" class=\"wp-image-666\" width=\"900\" height=\"37\" srcset=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-1024x43.png 1024w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-300x13.png 300w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-768x32.png 768w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-1536x64.png 1536w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-2048x86.png 2048w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/d4da48d9c880de3ec73292b348dec19b-940x39.png 940w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/figure>\n\n\n\n<p>\u203bIntellij\u753b\u9762\uff08\u5de6\uff1aExternal Libraries\u3001\u53f3\uff1abuild.gradle\uff09<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-sgb-tab-item post-tab__content tab2\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"104\" src=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-1024x104.png\" alt=\"\" class=\"wp-image-665\" srcset=\"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-1024x104.png 1024w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-300x31.png 300w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-768x78.png 768w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-1536x157.png 1536w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-2048x209.png 2048w, https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/35c4e68036c5187757f2c7ed8795835d-940x96.png 940w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n\n\n\n<p>\u203bIntellij\u753b\u9762\uff08\u5de6\uff1aExternal Libraries\u3001\u53f3\uff1apom.xml\uff09<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">\u30e1\u30a4\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306eversion\u3054\u3068\u3001\u8907\u6570\u306ebom\u3092\u751f\u6210\u3059\u308b<\/h2>\n\n\n\n<p>\u4f8b\u3048\u3070\u3001\u30e1\u30a4\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u3057\u3066SpringBoot\u3092\u4f7f\u3063\u3066\u3044\u308b\u5834\u5408\u3001minor version\u3054\u3068\u306b\u30b5\u30dd\u30fc\u30c8version\u304c\u7570\u306a\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u305d\u3093\u306a\u3068\u304d\uff11\u3064\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u8907\u6570\u306eversion\u306b\u5bfe\u5fdc\u3057\u305fbom\u304c\u751f\u6210\u3067\u304d\u308b\u3068\u4fbf\u5229\u3067\u3059\u3088\u306d\uff01<\/p>\n\n\n\n<p>\u305d\u3053\u3067\u5148\u307b\u3069\u7d39\u4ecb\u3057\u305fbom\u306e\u751f\u6210\u65b9\u6cd5\u3092\u5c11\u3057\u30a2\u30ec\u30f3\u30b8\u3057\u3066\u3001\u8907\u6570\u306eversion\u306b\u5bfe\u5fdc\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-groovy\" data-file=\"build.gradle\" data-lang=\"Groovy\"><code>ext {\n    \/\/ \u30e9\u30a4\u30d6\u30e9\u30ea\u306eversion\u3092map\u5f62\u5f0f\u3067\u5b9a\u7fa9\uff08key\u306fSpringBoot\u306eminor version\uff09\n    versionMap = [\n            'org.mybatis.spring.boot:mybatis-spring-boot-starter': [\n                    '2.7': '2.2.+',\n                    '3.0': '3.0.+'\n            ],\n            'org.mybatis.spring.boot:mybatis-spring-boot-starter-test': [\n                    '2.7': '2.2.+',\n                    '3.0': '3.0.+'\n            ],\n    ]\n    \/\/ bom\u306eversion\u3092map\u5f62\u5f0f\u3067\u5b9a\u7fa9\uff08key\u306fSpringBoot\u306eminor version\uff09\n    bomVersionMap = [\n            'org.springframework.boot:spring-boot-dependencies': [\n                    '2.7': '2.7.+',\n                    '3.0': '3.0.+'\n            ],\n            'org.springframework.cloud:spring-cloud-dependencies': [\n                    '2.7': '2021.0.+',\n                    '3.0': '2022.0.+'\n            ],\n    ]\n}\n\ndependencies {\n    constraints {\n        \/\/ map\u304b\u3089\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u5c55\u958b\n        \/\/ SpringBoot\u306b\u4f9d\u5b58\u3057\u306a\u3044\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3092\u8003\u616e\u3057\u3001\n        \/\/ \u300c*\u300d\u3092\u6307\u5b9a\u3059\u308b\u3068minor version\u306b\u95a2\u4fc2\u306a\u304f\u7d44\u307f\u8fbc\u307f\u53ef\u80fd\u306b\u3057\u3066\u304a\u304f\n        for (lib in versionMap.keySet()) {\n            if (versionMap[lib]['*'] != null) {\n                api \"${lib}:${versionMap[lib]['*']}\"\n            } else if (versionMap[lib][springBootVersion] != null) {\n                api \"${lib}:${versionMap[lib][springBootVersion]}\"\n            }\n        }\n    }\n\n    \/\/ map\u304b\u3089bom\u3092\u5c55\u958b\n    \/\/ SpringBoot\u306b\u4f9d\u5b58\u3057\u306a\u3044bom\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3092\u8003\u616e\u3057\u3001\n    \/\/ \u300c*\u300d\u3092\u6307\u5b9a\u3059\u308b\u3068minor version\u306b\u95a2\u4fc2\u306a\u304f\u7d44\u307f\u8fbc\u307f\u53ef\u80fd\u306b\u3057\u3066\u304a\u304f\n    for (bom in bomVersionMap.keySet()) {\n        if (bomVersionMap[bom]['*'] != null) {\n            api platform(\"${bom}:${bomVersionMap[bom]['*']}\")\n        } else if (bomVersionMap[bom][springBootVersion] != null) {\n            api platform(\"${bom}:${bomVersionMap[bom][springBootVersion]}\")\n        }\n    }\n}\n\npublishing {\n    publications {\n        mavenJava(MavenPublication) {\n            group = 'hirabay.bom'\n            artifactId = 'sample-bom'\n\n            \/\/ version\u3092\u65e5\u6642\u3092\u4f7f\u3063\u3066\u81ea\u52d5\u3067\u751f\u6210\n            def date = new Date()\n            def format = new SimpleDateFormat(\"yyyyMMddHHmmss\")\n            version = \"${springBootVersion}.${format.format(date)}\"\n\n            from components.javaPlatform\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u307e\u305f\u3001<code>gradle.properties<\/code>\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5909\u6570<code>springBootVersion<\/code>\u3092\u8a2d\u5b9a\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-groovy\" data-file=\"gradle.properties\" data-lang=\"Groovy\"><code>springBootVersion=3.0<\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u3067\u6e96\u5099\u306fOK\uff01<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306bspringBootVersion\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u8907\u6570\u306ebom\u3092\u751f\u6210\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff01<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-bash\" data-lang=\"Bash\"><code>$ .\/gradlew publish -PspringBootVersion=2.7\n\n$ .\/gradlew publish -PspringBootVersion=3.0<\/code><\/pre><\/div>\n\n\n<p><\/p><div class=\"memo \"><div class=\"memo_ttl dfont\"> \u30d6\u30e9\u30f3\u30c1\u5206\u3051\u308b\u3067\u306f\u30c0\u30e1\u306a\u306e\uff1f<\/div>\u30c0\u30e1\u3067\u306f\u306a\u3044\u3067\u3059\uff01<br>\n\u305f\u3060\u3001\u30d6\u30e9\u30f3\u30c1\u9593\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u751f\u5408\u6210\u3092\u63c3\u3048\u308b\u306e\u304c\u5927\u5909\u306b\u611f\u3058\u308b\u306e\u3067<br>\n\u500b\u4eba\u7684\u306b\u306f\uff11\u30d6\u30e9\u30f3\u30c1\u5185\u3067\u8907\u6570version\u5bfe\u5fdc\u3067\u304d\u305f\u65b9\u304c\u7ba1\u7406\u304c\u697d\u306b\u611f\u3058\u307e\u3059\u3002<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u7ba1\u7406\u3092\u52b9\u7387\u5316\u3059\u308b\u624b\u6bb5\u3068\u3057\u3066BOM (Bill of Materials) \u306e\u751f\u6210\u3068\u5229\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002 BOM\u3092\u5229\u7528\u3059\u308b\u3068version\u304c\u4e00\u5143\u7ba1\u7406\u3067\u304d &#8230; <\/p>\n","protected":false},"author":1,"featured_media":670,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[106,13],"class_list":{"0":"post-662","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-6","8":"tag-bom","9":"tag-springboot"},"jetpack_featured_media_url":"https:\/\/hirabay.net\/wp-content\/uploads\/2023\/07\/a11b4bb3ba448d1fa402ac3dc62cc91f.png","_links":{"self":[{"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/posts\/662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hirabay.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=662"}],"version-history":[{"count":5,"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":672,"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions\/672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hirabay.net\/index.php?rest_route=\/wp\/v2\/media\/670"}],"wp:attachment":[{"href":"https:\/\/hirabay.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hirabay.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hirabay.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}