{"id":18,"date":"2025-08-15T09:23:54","date_gmt":"2025-08-15T09:23:54","guid":{"rendered":"https:\/\/iotnoob.com\/wordpress\/?p=18"},"modified":"2025-08-16T07:40:46","modified_gmt":"2025-08-16T07:40:46","slug":"start-gradle-project-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%99%e0%b8%b3%e0%b9%84%e0%b8%9b%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%83%e0%b8%99-netbeans","status":"publish","type":"post","link":"https:\/\/iotnoob.com\/wordpress\/2025\/08\/15\/start-gradle-project-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%99%e0%b8%b3%e0%b9%84%e0%b8%9b%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%83%e0%b8%99-netbeans\/","title":{"rendered":"Start Gradle project \u0e41\u0e25\u0e49\u0e27\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e43\u0e19 Netbeans"},"content":{"rendered":"\n<p>\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e1c\u0e39\u0e01\u0e01\u0e31\u0e1a Gradle version \u0e43\u0e19 Netbeans \u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e2a\u0e23\u0e49\u0e32\u0e07 project \u0e43\u0e2b\u0e21\u0e48<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07 folder \u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e01\u0e47\u0e1a project<\/li>\n\n\n\n<li>\u0e40\u0e1b\u0e34\u0e14 command prompt &#8211; \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19 folder <\/li>\n\n\n\n<li>\u0e2a\u0e31\u0e48\u0e07 gradle init<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"948\" height=\"480\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-1.png\" alt=\"\" class=\"wp-image-19\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-1.png 948w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-1-300x152.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-1-768x389.png 768w\" sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"689\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2-1024x689.png\" alt=\"\" class=\"wp-image-20\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2-1024x689.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2-300x202.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2-768x517.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2-1536x1034.png 1536w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-2.png 1570w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e2d\u0e30\u0e44\u0e23 \u0e21\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"306\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4-1024x306.png\" alt=\"\" class=\"wp-image-22\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4-1024x306.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4-300x90.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4-768x229.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4-1536x459.png 1536w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-4.png 1678w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e21\u0e31\u0e19\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 &#8216;app&#8217; \u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e25\u0e22 <\/p>\n\n\n\n<p>\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e14\u0e39\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 sub-project \u0e42\u0e14\u0e22 settings.gradle \u0e40\u0e1b\u0e47\u0e19 setup \u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 main project \u0e19\u0e35\u0e49\u0e40\u0e25\u0e22<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"571\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-5.png\" alt=\"\" class=\"wp-image-24\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-5.png 846w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-5-300x202.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-5-768x518.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/figure>\n\n\n\n<p>\u0e2a\u0e31\u0e48\u0e07 gradle wrapper \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c wrapper \u0e42\u0e14\u0e22\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e21\u0e31\u0e19\u0e08\u0e30\u0e44\u0e21\u0e48\u0e2d\u0e34\u0e07\u0e01\u0e31\u0e1a gradle \u0e17\u0e35\u0e48\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e25\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e2b\u0e23\u0e37\u0e2d upgrade<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u0e41\u0e15\u0e48\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e21\u0e31\u0e19\u0e08\u0e30 error \u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e01\u0e47\u0e44\u0e21\u0e48\u0e41\u0e19\u0e48\u0e43\u0e08 ? \u0e41\u0e15\u0e48\u0e08\u0e23\u0e34\u0e07\u0e46\u0e41\u0e25\u0e49\u0e27\u0e21\u0e31\u0e19\u0e21\u0e35 gradle wrapper \u0e21\u0e32\u0e43\u0e2b\u0e49\u0e41\u0e15\u0e48\u0e41\u0e23\u0e01\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e19 ?<\/mark><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"342\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-6-1024x342.png\" alt=\"\" class=\"wp-image-28\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-6-1024x342.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-6-300x100.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-6-768x257.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-6.png 1482w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e47\u0e16\u0e37\u0e2d\u0e27\u0e48\u0e32\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27 &#8211; \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e25\u0e2d\u0e07\u0e43\u0e0a\u0e49 Netbeans \u0e40\u0e1b\u0e34\u0e14<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"548\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-7-1024x548.png\" alt=\"\" class=\"wp-image-29\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-7-1024x548.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-7-300x161.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-7-768x411.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-7.png 1272w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0e40\u0e1b\u0e34\u0e14\u0e04\u0e23\u0e31\u0e49\u0e07\u0e41\u0e23\u0e01 \u0e15\u0e49\u0e2d\u0e07\u0e2a\u0e31\u0e48\u0e07 build \u0e01\u0e48\u0e2d\u0e19 &#8211; \u0e01\u0e14 Resolve \u0e01\u0e47\u0e1e\u0e2d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"701\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-8.png\" alt=\"\" class=\"wp-image-30\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-8.png 900w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-8-300x234.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-8-768x598.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p>app \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e01\u0e31\u0e1a gradle init<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9-1024x495.png\" alt=\"\" class=\"wp-image-31\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9-1024x495.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9-300x145.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9-768x371.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9-1536x743.png 1536w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-9.png 1698w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"426\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10-1024x426.png\" alt=\"\" class=\"wp-image-32\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10-1024x426.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10-300x125.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10-768x320.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10-1536x640.png 1536w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-10.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0e16\u0e49\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33 FAT-JAR \u0e2b\u0e23\u0e37\u0e2d UBER-JAR<\/strong> \u0e2b\u0e23\u0e37\u0e2d SHADOW-JAR<\/h2>\n\n\n\n<p>Fat-jar \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23 compile project \u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32 \u0e41\u0e25\u0e49\u0e27\u0e17\u0e33 JAR package \u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e22\u0e31\u0e14 library \u0e17\u0e38\u0e01\u0e15\u0e31\u0e27\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e40\u0e23\u0e35\u0e22\u0e01\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e44\u0e27\u0e49\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e35\u0e22\u0e27 &#8211; \u0e02\u0e49\u0e2d\u0e14\u0e35\u0e04\u0e37\u0e2d\u0e40\u0e27\u0e25\u0e32 deploy \u0e40\u0e23\u0e32\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e44\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e35\u0e22\u0e27\u0e43\u0e2b\u0e0d\u0e48\u0e46 &#8211; \u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21 versioning \u0e01\u0e47\u0e08\u0e30\u0e14\u0e39\u0e2a\u0e30\u0e14\u0e27\u0e01 &#8211; \u0e41\u0e15\u0e48\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e35\u0e22\u0e04\u0e37\u0e2d\u0e1a\u0e32\u0e07\u0e17\u0e35\u0e44\u0e1f\u0e25\u0e4c\u0e21\u0e31\u0e19\u0e43\u0e2b\u0e0d\u0e48\u0e21\u0e32\u0e01 \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e21\u0e35\u0e01\u0e32\u0e23 update \u0e1a\u0e48\u0e2d\u0e22\u0e46 \u0e40\u0e27\u0e25\u0e32\u0e17\u0e33\u0e07\u0e32\u0e19\u0e08\u0e30\u0e0a\u0e49\u0e32\u0e25\u0e07\u0e21\u0e32\u0e01 \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e1a\u0e32\u0e07\u0e17\u0e35\u0e40\u0e27\u0e25\u0e32 compile \u0e01\u0e47\u0e19\u0e32\u0e19\u0e1e\u0e2d\u0e2a\u0e21\u0e04\u0e27\u0e23 &#8211; \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19 &#8211; \u0e01\u0e32\u0e23 deploy \u0e01\u0e47\u0e08\u0e30\u0e19\u0e32\u0e19 \u0e22\u0e34\u0e48\u0e07\u0e16\u0e49\u0e32\u0e1c\u0e48\u0e32\u0e19 network \u0e0a\u0e49\u0e32\u0e46 \u0e08\u0e30\u0e22\u0e34\u0e48\u0e07\u0e40\u0e2a\u0e35\u0e22\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e01<\/p>\n\n\n\n<p>\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32 apply plugins &#8211; shadow &#8211; \u0e43\u0e19 menu task \u0e08\u0e30\u0e21\u0e35 menu \u0e22\u0e48\u0e2d\u0e22\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e04\u0e37\u0e2d menu &#8216;shadow&#8217; &#8211; \u0e40\u0e27\u0e25\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e40\u0e23\u0e32\u0e01\u0e47\u0e08\u0e30\u0e40\u0e23\u0e35\u0e22\u0e01 &#8216;shadowJar&#8217; \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e21\u0e31\u0e19\u0e08\u0e30 package \u0e17\u0e38\u0e01\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e0a\u0e37\u0e48\u0e2d [app \u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32]-all.jar<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"168\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-11-1024x168.png\" alt=\"\" class=\"wp-image-33\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-11-1024x168.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-11-300x49.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-11-768x126.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-11.png 1519w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"821\" height=\"585\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-13.png\" alt=\"\" class=\"wp-image-35\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-13.png 821w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-13-300x214.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-13-768x547.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"486\" height=\"265\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-14.png\" alt=\"\" class=\"wp-image-36\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-14.png 486w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-14-300x164.png 300w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/figure>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 customize \u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e14\u0e49 \u0e44\u0e21\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 -all.jar \u0e15\u0e48\u0e2d\u0e17\u0e49\u0e32\u0e22\u0e40\u0e2a\u0e21\u0e2d\u0e44\u0e1b (\u0e40\u0e14\u0e35\u0e4b\u0e22\u0e27\u0e04\u0e48\u0e2d\u0e22\u0e21\u0e32\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e15\u0e23\u0e07\u0e19\u0e35\u0e49)<\/mark><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"271\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15-1024x271.png\" alt=\"\" class=\"wp-image-37\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15-1024x271.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15-300x79.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15-768x203.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15-1536x406.png 1536w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-15.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"291\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-16-1024x291.png\" alt=\"\" class=\"wp-image-38\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-16-1024x291.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-16-300x85.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-16-768x218.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-16.png 1384w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e2a\u0e23\u0e49\u0e32\u0e07 sub-project \u0e43\u0e19 root project<\/h2>\n\n\n\n<p>\u0e43\u0e19 root project &#8211; settings.gradle &#8211; \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e0a\u0e37\u0e48\u0e2d project \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-17-1024x534.png\" alt=\"\" class=\"wp-image-42\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-17-1024x534.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-17-300x156.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-17-768x400.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-17.png 1328w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0e2a\u0e23\u0e49\u0e32\u0e07 folder \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 \u0e14\u0e49\u0e27\u0e22 structure \u0e15\u0e32\u0e21\u0e02\u0e49\u0e32\u0e07\u0e25\u0e48\u0e32\u0e07 + \u0e2a\u0e23\u0e49\u0e32\u0e07 build.gradle &#8211; \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19 reload project<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"868\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-18-1024x868.png\" alt=\"\" class=\"wp-image-44\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-18-1024x868.png 1024w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-18-300x254.png 300w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-18-768x651.png 768w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-18.png 1139w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"302\" src=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-19.png\" alt=\"\" class=\"wp-image-45\" srcset=\"https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-19.png 753w, https:\/\/iotnoob.com\/wordpress\/wp-content\/uploads\/2025\/08\/image-19-300x120.png 300w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/figure>\n\n\n\n<p><strong>\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 build.gradle \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\n * This file was generated by the Gradle 'init' task.\n *\n * This generated file contains a sample Java application project to get you started.\n * For more details on building Java &amp; JVM projects, please refer to https:\/\/docs.gradle.org\/8.14.3\/userguide\/building_java_projects.html in the Gradle documentation.\n *\/\n\nplugins {\n    \/\/ Apply the application plugin to add support for building a CLI application in Java.\n    id 'application'\n    id 'com.github.johnrengelman.shadow' version '8.1.1'\n}\n\nrepositories {\n    \/\/ Use Maven Central for resolving dependencies.\n    mavenCentral()\n}\n\ndependencies {\n    \/\/ Use JUnit Jupiter for testing.\n    testImplementation libs.junit.jupiter\n    \/\/testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'\n\n    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'\n\n    \n    \/\/testImplementation 'junit:junit:4.13.2'\n    \n    \/\/ This dependency is used by the application.\n    implementation libs.guava\n\n    \/\/ Apache POI \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e1f\u0e25\u0e4c Excel (.xls \u0e41\u0e25\u0e30 .xlsx)\n    \/\/ 'poi' \u0e04\u0e37\u0e2d API \u0e2b\u0e25\u0e31\u0e01\n    implementation 'org.apache.poi:poi:5.2.5'\n    \/\/ 'poi-ooxml' \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e44\u0e1f\u0e25\u0e4c .xlsx (\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48)\n    implementation 'org.apache.poi:poi-ooxml:5.2.5'\n\n    compileOnly 'org.projectlombok:lombok:1.18.38'\n    annotationProcessor 'org.projectlombok:lombok:1.18.38'\n    testCompileOnly 'org.projectlombok:lombok:1.18.38'\n    testAnnotationProcessor 'org.projectlombok:lombok:1.18.38'\n\n}\n\n\/\/ Apply a specific Java toolchain to ease working on different environments.\njava {\n    toolchain {\n        languageVersion = JavaLanguageVersion.of(8)\n    }\n}\n\napplication {\n    \/\/ Define the main class for the application.\n    mainClass = 'org.example.App'\n}\n\ntasks.named('test') {\n    \/\/ Use JUnit Platform for unit tests.\n    useJUnitPlatform()\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e1c\u0e39\u0e01\u0e01\u0e31\u0e1a Gradle version \u0e43\u0e19 Netbeans \u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e2a\u0e23\u0e49\u0e32\u0e07 project \u0e43\u0e2b\u0e21\u0e48 \u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e2d\u0e30\u0e44\u0e23 \u0e21\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49 \u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e21\u0e31\u0e19\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 &#8216;app&#8217; \u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e25\u0e22 \u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e14\u0e39\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 sub-project&hellip;<\/p>\n","protected":false},"author":1,"featured_media":137,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-18","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/posts\/18","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":7,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":53,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/posts\/18\/revisions\/53"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/media\/137"}],"wp:attachment":[{"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotnoob.com\/wordpress\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}