
{"id":2126,"date":"2022-11-19T11:45:50","date_gmt":"2022-11-19T03:45:50","guid":{"rendered":"http:\/\/dba.qishuo.xin\/?p=2126"},"modified":"2022-11-21T08:38:21","modified_gmt":"2022-11-21T00:38:21","slug":"%e4%bd%bf%e7%94%a8-gradle-%e5%bf%ab%e9%80%9f%e5%88%9b%e5%bb%ba-java-%e9%a1%b9%e7%9b%ae%ef%bc%88%e4%be%8b%e4%b8%80%ef%bc%89","status":"publish","type":"post","link":"http:\/\/dba.qishuo.xin\/?p=2126","title":{"rendered":"\u4f7f\u7528 Gradle \u5feb\u901f\u6784\u5efa Java \u9879\u76ee\uff08\u4f8b\u4e00\uff09"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-69d26bf262f28\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69d26bf262f28\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#1_Gradle%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F\" >1. Gradle\u7684\u57fa\u672c\u6982\u5ff5\u6709\u54ea\u4e9b\uff1f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#2_Gradle%E7%9A%84%E6%A0%B8%E5%BF%83%E5%85%83%E7%B4%A0\" >2. Gradle\u7684\u6838\u5fc3\u5143\u7d20<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#21_Project\" >2.1. Project<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#22_Task\" >2.2. Task<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#3_%E4%BD%BF%E7%94%A8_Gradle_%E6%9E%84%E5%BB%BA_Java_%E9%A1%B9%E7%9B%AELinux%E7%8E%AF%E5%A2%83\" >3. \u4f7f\u7528 Gradle \u6784\u5efa Java \u9879\u76ee(Linux\u73af\u5883)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#31_%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE\" >3.1. \u521d\u59cb\u5316\u4e00\u4e2a\u9879\u76ee<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#32_%E5%88%9B%E5%BB%BA%E4%B8%80%E6%AE%B5%E4%BB%A3%E7%A0%81\" >3.2. \u521b\u5efa\u4e00\u6bb5\u4ee3\u7801<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#33_%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AAtask_%EF%BC%88%E4%BB%BB%E5%8A%A1%EF%BC%89\" >3.3. \u521b\u5efa\u4e00\u4e2atask \uff08\u4efb\u52a1\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#34_%E4%BD%BF%E7%94%A8%E6%8F%92%E4%BB%B6\" >3.4. \u4f7f\u7528\u63d2\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#35_Application%E6%8F%92%E4%BB%B6\" >3.5. Application\u63d2\u4ef6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#%E9%99%84%E5%BD%95\" >\u9644\u5f55<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#%E9%99%84%E5%BD%95A_%E7%9B%B8%E5%85%B3%E8%81%94%E7%9A%84%E6%96%87%E7%AB%A0\" >\u9644\u5f55A. \u76f8\u5173\u8054\u7684\u6587\u7ae0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#%E9%99%84%E5%BD%95B_%E5%8F%82%E8%80%83\" >\u9644\u5f55B. \u53c2\u8003<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"http:\/\/dba.qishuo.xin\/?p=2126\/#%E9%99%84%E5%BD%95C_gradle_%E4%B8%BB%E8%A6%81%E8%A6%81%E7%82%B9\" >\u9644\u5f55C. gradle \u4e3b\u8981\u8981\u70b9<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p><strong>\u73af\u5883\u63cf\u8ff0<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">\u63cf\u8ff0\u9879<\/th>\n<th style=\"text-align: left;\">\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">\u64cd\u4f5c\u7cfb\u7edf<\/td>\n<td style=\"text-align: left;\">CentOS Linux release 7.8.2003 (Core)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">java\u7248\u672c<\/td>\n<td style=\"text-align: left;\">java version &quot;1.8.0_161&quot;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">IDEA\u7248\u672c<\/td>\n<td style=\"text-align: left;\">2022.2.2<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Gradle\u7248\u672c<\/td>\n<td style=\"text-align: left;\">7.5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"1_Gradle%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F\"><\/span>1. Gradle\u7684\u57fa\u672c\u6982\u5ff5\u6709\u54ea\u4e9b\uff1f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>\n<p>\u4e09\u7ea7\u6570\u636e\u6a21\u578b\uff1aBuild\uff0cProject\uff0cTask\u3002\u4e00\u4e2aBuild\u53ef\u4ee5\u5305\u62ec1\u5230N\u4e2aProject\uff0c\u4e00\u4e2aProject\u5305\u62ec1-N\u4e2aTask\uff1b<\/p>\n<\/li>\n<li>\n<p>Task\u4e4b\u95f4\u7684\u5173\u7cfb\u662f\u6709\u5411\u65e0\u73af\u56fe\uff08DAG\uff09\uff0c\u6784\u5efa\u8fc7\u7a0b\u5c31\u662f\u6309\u7167DAG\u4f9d\u6b21\u6267\u884c\u5176\u4e2d\u7684Task\uff0cGradle\u53ef\u4ee5\u770b\u6210\u6307\u6325\u5b98\uff0c\u662fTask\u7684\u8c03\u5ea6\u5668\uff1b<\/p>\n<\/li>\n<li>\n<p>Plugin\u662f\u5e95\u4e0b\u771f\u6b63\u5e72\u6d3b\u7684\uff0c\u4e0d\u540c\u7684Plugin\u5b9e\u73b0\u4e0d\u540c\u529f\u80fd\u7684Task\uff0c\u6dfb\u52a0Plugin\u5c31\u4f1a\u5728Build\u4e2d\u9884\u5b9a\u4e49Task\u548cConfiguration\u3002<\/p>\n<\/li>\n<\/ol>\n<p>\u4e0b\u56fe\u5373\u662f\u4e00\u4e2a\u5e38\u89c4\u7684Java\u9879\u76eeBuild\u8fc7\u7a0b\u7ecf\u5386\u7684Task\uff0c\u50cfjar\/classes\u7b49\u7b49\u8fd9\u4e9bTask\u7684\u5b9e\u73b0\u5c31\u662fJava Plugin\u63d0\u4f9b\u7684\u3002<\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668730112295.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668730112295.png\" alt=\"file\" \/><\/a><\/p>\n<p><strong><span style='color:purple'>gradle \u53ef\u4ee5\u7c7b\u6bd4\u505a\u4e00\u6761\u6d41\u6c34\u7ebf\uff0ctask \u53ef\u4ee5\u6bd4\u4f5c\u6d41\u6c34\u7ebf\u4e0a\u7684\u673a\u5668\u4eba\uff0c\u6bcf\u4e2a\u673a\u5668\u4eba\u8d1f\u8d23\u4e0d\u540c\u7684\u4e8b\u60c5\uff0c\u6700\u7ec8\u751f\u6210\u5b8c\u6574\u7684\u6784\u5efa\u4ea7\u7269:<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668731108012.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668731108012.png\" alt=\"file\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_Gradle%E7%9A%84%E6%A0%B8%E5%BF%83%E5%85%83%E7%B4%A0\"><\/span>2. Gradle\u7684\u6838\u5fc3\u5143\u7d20<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"21_Project\"><\/span>2.1. Project<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Gradle\u4e3a\u6bcf\u4e2amodule\u7684 <code>build.gradle<\/code> \u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u76f8\u5e94\u7684Project\u9886\u57df\u5bf9\u8c61\uff0c\u5728\u7f16\u5199gradle\u811a\u672c\u7684\u65f6\u5019\uff0c\u6211\u4eec\u5b9e\u9645\u4e0a\u662f\u5728\u64cd\u4f5c\u8bf8\u5982Project\u8fd9\u6837\u7684Gradle\u9886\u57df\u5bf9\u8c61\u3002<br \/>\n\u90a3\u4e48\u6211\u4eec\u603b\u5171\u6709\u591a\u5c11\u4e2aprojects\u5bf9\u8c61\u5462\uff1f<span style='color:red'>projects\u5bf9\u8c61\u7684\u6570\u91cf\u7b49\u4e8emodule\u7684\u6570\u91cf + 1<\/span>\uff0c\u4e5f\u5c31\u662f\u6240\u6709\u7684<span style='color:red'> module + Root project<\/span>\u3002\u5927\u5bb6\u4e5f\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4\u884c\u6253\u5370\u51fa\u6765\u770b\u4e00\u4e0b\uff1a<code>.\/gradlew projects<\/code>\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"22_Task\"><\/span>2.2. Task<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4e00\u4e2aProject\u7531\u4e00\u4e2a\u6216\u591a\u4e2aTask\u7ec4\u6210\uff0c\u5b83\u662f\u6784\u5efa\u8fc7\u7a0b\u4e2d\u7684\u539f\u5b50\u4efb\u52a1\uff0c\u53ef\u4ee5\u4f7f\u7f16\u8bd1class\u3001\u4e0a\u4f20jar\u5305\u7b49\u3002\u5728\u5b9a\u4e49\u4e00\u4e2aTask\u7684\u65f6\u5019\uff0c\u9700\u8981\u7684\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">\u53c2\u6570<\/th>\n<th style=\"text-align: left;\">\u542b\u4e49<\/th>\n<th style=\"text-align: left;\">\u9ed8\u8ba4\u503c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">name<\/td>\n<td style=\"text-align: left;\">task\u7684\u540d\u5b57<\/td>\n<td style=\"text-align: left;\">\u4e0d\u80fd\u4e3a\u7a7a\uff0c\u5fc5\u987b\u6307\u5b9a<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">type<\/td>\n<td style=\"text-align: left;\">task\u7684\u201c\u7236\u7c7b\u201d<\/td>\n<td style=\"text-align: left;\">DefaultTask<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">overwrite<\/td>\n<td style=\"text-align: left;\">\u662f\u5426\u66ff\u6362\u5df2\u7ecf\u5b58\u5728\u7684task<\/td>\n<td style=\"text-align: left;\">false<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">dependsOn<\/td>\n<td style=\"text-align: left;\">task\u4f9d\u8d56\u7684task\u96c6\u5408<\/td>\n<td style=\"text-align: left;\">[]<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">group<\/td>\n<td style=\"text-align: left;\">task\u5c5e\u4e8e\u54ea\u4e2a\u7ec4<\/td>\n<td style=\"text-align: left;\">null<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">description<\/td>\n<td style=\"text-align: left;\">task\u7684\u63cf\u8ff0<\/td>\n<td style=\"text-align: left;\">null<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6211\u4eec\u5e73\u65f6\u6267\u884c\u7684\u6700\u591a\u7684\u547d\u4ee4\u5e94\u8be5\u662f <code>.\/gradlew build<\/code> \u4e86\u5427\uff0c\u800c\u8fd9\u4e2a\u547d\u4ee4\u53ef\u4ee5\u8bf4\u662f\u6700\u590d\u6742\u7684task\u547d\u4ee4\u4e86\uff0c\u6211\u4eec\u4e5f\u77e5\u9053\u5b83\u6bcf\u6b21\u90fd\u4f1a\u6267\u884c\u5f88\u957f\u65f6\u95f4\uff0c\u800c\u8fd9\u662f\u56e0\u4e3abuild\u7684task\u4efb\u52a1\u4f9d\u8d56\u4e86\u5f88\u591a\u4efb\u52a1\uff0c\u5b83\u4f1a\u628a\u5b83\u6240\u4f9d\u8d56\u7684task\u6267\u884c\u5b8c\u4e4b\u540e\uff0c\u624d\u4f1a\u6267\u884c\u81ea\u5df1\u7684task\u3002<br \/>\n\u5b9a\u4e49\u4e00\u4e2atask\u7684\u65b9\u5f0f\u6709\u5f88\u591a\u79cd\uff0c\u800ctask\u4e5f\u5206\u4e3a\u4e24\u79cd\u7c7b\u578b\uff1a<span style='color:red'>\u914d\u7f6e\u578bTask\u548c\u52a8\u4f5c\u578bTask<\/span>\u3002\u914d\u7f6e\u578bTask\u4f1a\u5728Gradle\u7684\u914d\u7f6e\u9636\u6bb5\u6267\u884c\uff0c\u800c\u52a8\u4f5c\u578bTask\u4f1a\u5728Gradle\u7684\u6267\u884c\u9636\u6bb5\u6267\u884c\u3002<\/p>\n<p>\u4efb\u52a1\u7684\u751f\u547d\u5468\u671f\u5982\u4e0b\uff1a<\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668786974206.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668786974206.png\" alt=\"file\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_%E4%BD%BF%E7%94%A8_Gradle_%E6%9E%84%E5%BB%BA_Java_%E9%A1%B9%E7%9B%AELinux%E7%8E%AF%E5%A2%83\"><\/span>3. \u4f7f\u7528 Gradle \u6784\u5efa Java \u9879\u76ee(Linux\u73af\u5883)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"31_%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE\"><\/span>3.1. \u521d\u59cb\u5316\u4e00\u4e2a\u9879\u76ee<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>1) \u5728\u6839\u76ee\u5f55\u4e0b\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u521b\u5efa\u4e00\u4e2a\u53eb\u505a basicDemo \u6587\u4ef6\u5939<\/p>\n<pre><code class=\"language-shell\">mkdir basicDemo<\/code><\/pre>\n<p>2) \u8fdb\u5165\u521b\u5efa\u7684\u6587\u4ef6\u5939(\u4e0b\u8ff0\u5176\u4ed6\u64cd\u4f5c\u5747\u5728\u8be5\u6587\u4ef6\u5939\u4e0b)<\/p>\n<pre><code class=\"language-shell\">cd basicDemo<\/code><\/pre>\n<p>3) \u8f93\u5165gradle\u521d\u59cb\u5316\u547d\u4ee4<\/p>\n<pre><code class=\"language-shell\">gradle init<\/code><\/pre>\n<p>\u4f7f\u7528\u9ed8\u8ba4\u7684\u9009\u9879\uff0c\u4e00\u8def\u56de\u8f66\u5373\u53ef\u3002<\/p>\n<details>\n<summary><font size=\"2\" color=\"orange\">\u8be6\u7ec6\u5185\u5bb9<\/font><\/summary>\n<pre><code class=\"language-cpp\">\n[java@etdbmysql basicDemo]$ gradle init\nStarting a Gradle Daemon (subsequent builds will be faster)\n\nSelect type of project to generate:\n  1: basic\n  2: application\n  3: library\n  4: Gradle plugin\nEnter selection (default: basic) [1..4] \u56de\u8f66\n\nSelect build script DSL:\n  1: Groovy\n  2: Kotlin\nEnter selection (default: Groovy) [1..2] \u56de\u8f66\n\nGenerate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] \u56de\u8f66\nProject name (default: basicDemo): \u56de\u8f66\n\n> Task :init\nGet more help with your project: Learn more about Gradle by exploring our samples at https:\/\/docs.gradle.org\/7.5\/samples\n\nBUILD SUCCESSFUL in 18s\n2 actionable tasks: 2 executed\n<\/code>\n<\/pre>\n<\/details>\n<p>4) \u6267\u884c\u6210\u529f\u540e\u4f7f\u7528 ls \u6216 tree \u547d\u4ee4\u67e5\u770b\u76ee\u5f55\u7ed3\u6784<\/p>\n<pre><code class=\"language-shell\">tree<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668818570755.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668818570755.png\" alt=\"file\" \/><\/a><\/p>\n<h4><span class=\"ez-toc-section\" id=\"32_%E5%88%9B%E5%BB%BA%E4%B8%80%E6%AE%B5%E4%BB%A3%E7%A0%81\"><\/span>3.2. \u521b\u5efa\u4e00\u6bb5\u4ee3\u7801<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>1) \u521b\u5efa\u4e3b\u7a0b\u5e8f\u76ee\u5f55\u7ed3\u6784<\/p>\n<pre><code class=\"language-shell\">mkdir -p src\/main\/java\/xin\/qishuo\/basicDemo<\/code><\/pre>\n<p>2) \u7f16\u5199Java\u6587\u4ef6<\/p>\n<pre><code class=\"language-shell\">vim src\/main\/java\/xin\/qishuo\/basicDemo\/Example.java<\/code><\/pre>\n<p>3) \u521b\u5efaJava\u4ee3\u7801<\/p>\n<pre><code class=\"language-java\">package xin.qishuo.basicDemo;\n\npublic class Example {\n  public String getGreeting() {\n     return &quot;Hello World!&quot;;\n   }\n\n  public static void main(String[] args) {\n    System.out.println(new Example().getGreeting());\n  }\n}<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"33_%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AAtask_%EF%BC%88%E4%BB%BB%E5%8A%A1%EF%BC%89\"><\/span>3.3. \u521b\u5efa\u4e00\u4e2atask \uff08\u4efb\u52a1\uff09<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>1\uff09task\u7b80\u4ecb<br \/>\nGradle\u63d0\u4f9bAPI\uff0c\u7528\u4e8e\u901a\u8fc7\u57fa\u4e8eGroovy\u6216Kotlin\u7684DSL\u521b\u5efa\u548c\u914d\u7f6e\u4efb\u52a1\u3002 \u9879\u76ee\u5305\u62ec\u4e00\u7ec4\u4efb\u52a1\uff0c\u6bcf\u4e2a\u4efb\u52a1\u6267\u884c\u4e00\u4e9b\u57fa\u672c\u64cd\u4f5c\u3002<\/p>\n<p>Gradle\u9644\u5e26\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728\u60a8\u81ea\u5df1\u7684\u9879\u76ee\u4e2d\u914d\u7f6e\u7684\u4efb\u52a1\u5e93\u3002 \u4f8b\u5982\uff0c\u6709\u4e00\u79cd\u540d\u4e3aCopy\u7684\u6838\u5fc3\u7c7b\u578b\uff0c\u5b83\u5c06\u6587\u4ef6\u4ece\u4e00\u4e2a\u4f4d\u7f6e\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u4f4d\u7f6e\u3002 \u590d\u5236\u4efb\u52a1\u975e\u5e38\u6709\u7528\uff08\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u5b98\u65b9\u6587\u6863\uff1a<a target=\"_blank\" href=\"https:\/\/docs.gradle.org\/current\/dsl\/index.html\" title=\"Gradle DSLs and API\/Groovy DSL Reference\/Task types\">Gradle DSLs and API\/Groovy DSL Reference\/Task types<\/a>\uff09\uff0c\u4e0b\u9762\u7ed9\u51fa\u4e00\u4e0b\u7b80\u5355\u793a\u4f8b\u3002<\/p>\n<p>2\uff09\u521b\u5efa\u4e00\u4e2aCopy\u7684Task<\/p>\n<p>\u5728\u6784\u5efa\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u540d\u4e3aCopy\u7684\u7c7b\u578b\u7684\u526f\u672c\uff08\u6ce8\u610f\u5927\u5199\u5b57\u6bcd\uff09\uff0c\u8be5\u4efb\u52a1\u5c06src\u76ee\u5f55\u590d\u5236\u5230\u540d\u4e3adest\u7684\u65b0\u76ee\u5f55\u3002 \uff08\u60a8\u4e0d\u5fc5\u521b\u5efadest\u76ee\u5f55\uff0c\u4efb\u52a1\u5c06\u4e3a\u60a8\u5b8c\u6210\u3002\uff09<\/p>\n<ul>\n<li>\n<p>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/p>\n<pre><code>task copy(type: Copy, group: &quot;Custom&quot;, description: &quot;Copies sources to the dest directory&quot;) {\nfrom &quot;src&quot;\ninto &quot;dest&quot;\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>build.gradle.kts\uff08Kotlin\u8bed\u6cd5\uff09<\/p>\n<pre><code>tasks.create&lt;Copy&gt;(&quot;copy&quot;) {\ndescription = &quot;Copies sources to the dest directory&quot;\ngroup = &quot;Custom&quot;\n\nfrom(&quot;src&quot;)\ninto(&quot;dest&quot;)\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p><span style='color:purple'>\u5728\u8fd9\u91cc\uff0cgroup\u548cdescription\u53ef\u4ee5\u662f\u60a8\u60f3\u8981\u7684\u4efb\u4f55\u5185\u5bb9\u3002 \u60a8\u751a\u81f3\u53ef\u4ee5\u7701\u7565\u5b83\u4eec\uff0c\u4f46\u8fd9\u6837\u505a\u4e5f\u4f1a\u5728\u4ee5\u540e\u4f7f\u7528\u7684\u4efb\u52a1\u62a5\u544a\u4e2d\u7701\u7565\u5b83\u4eec\u3002<\/span><\/p>\n<p>3\uff09\u67e5\u770bTask<\/p>\n<pre><code class=\"language-shell\">.\/gradlew tasks --all<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668819593206.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668819593206.png\" alt=\"file\" \/><\/a><\/p>\n<p>4\uff09\u6267\u884cTask<\/p>\n<pre><code class=\"language-shell\">.\/gradlew copy<\/code><\/pre>\n<p>5\uff09\u6700\u540e\u68c0\u67e5\u662f\u5426\u751f\u6210\u4e86dest\u76ee\u5f55\u53cacopy\u7684\u6587\u4ef6<\/p>\n<h4><span class=\"ez-toc-section\" id=\"34_%E4%BD%BF%E7%94%A8%E6%8F%92%E4%BB%B6\"><\/span>3.4. \u4f7f\u7528\u63d2\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Gradle\u5305\u542b\u4e00\u7cfb\u5217\u63d2\u4ef6\uff0cGradle\u63d2\u4ef6\u95e8\u6237\u7f51\u7ad9\u4e0a\u63d0\u4f9b\u4e86\u8bb8\u591a\u63d2\u4ef6\u3002 \u8be5\u53d1\u884c\u7248\u9644\u5e26\u7684\u63d2\u4ef6\u4e4b\u4e00\u662f base \u63d2\u4ef6\u3002 \u7ed3\u5408\u540d\u4e3aZip\u7684\u6838\u5fc3\u7c7b\u578b\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u914d\u7f6e\u7684\u540d\u79f0\u548c\u4f4d\u7f6e\u521b\u5efa\u9879\u76ee\u7684zip\u5b58\u6863\u3002<\/p>\n<p>\u4f7f\u7528\u63d2\u4ef6\u8bed\u6cd5\u5c06\u57fa\u672c\u63d2\u4ef6\u6dfb\u52a0\u5230\u6784\u5efa\u811a\u672c\u6587\u4ef6\u4e2d\u3002 \u8bf7\u52a1\u5fc5\u5728\u6587\u4ef6\u9876\u90e8\u6dfb\u52a0\u63d2\u4ef6 <code>{}<\/code> \u5757\u3002<\/p>\n<ul>\n<li>\n<p>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/p>\n<pre><code>plugins {\nid &quot;base&quot;\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>build.gradle.kts\uff08Kotlin\u8bed\u6cd5\uff09<\/p>\n<pre><code>plugins {\nid(&quot;base&quot;)\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u73b0\u5728\u6dfb\u52a0\u4e00\u4e2a\u4ecesrc\u76ee\u5f55\u521b\u5efazip\u5b58\u6863\u7684\u4efb\u52a1\u3002<\/p>\n<ul>\n<li>\n<p>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/p>\n<pre><code>task zip(type: Zip, group: &quot;Archive&quot;, description: &quot;Archives sources in a zip file&quot;) {\nfrom &quot;src&quot;\nsetArchiveName &quot;basicDemo-1.0.zip&quot;\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>build.gradle.kts\uff08Kotlin\u8bed\u6cd5\uff09<\/p>\n<pre><code>tasks.create&lt;Zip&gt;(&quot;zip&quot;) {\ndescription = &quot;Archives sources in a zip file&quot;\ngroup = &quot;Archive&quot;\n\nfrom(&quot;src&quot;)\nsetArchiveName(&quot;basicDemo-1.0.zip&quot;)\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p><span style='color:purple'>\u57fa\u672c\u63d2\u4ef6\u4f1a\u5728 build\/distributions \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3abasicDemo-1.0.zip\u7684\u5b58\u6863\u6587\u4ef6\u3002<\/span><\/p>\n<p>1\uff09\u67e5\u770b\u4efb\u52a1<\/p>\n<pre><code class=\"language-shell\">.\/gradlew tasks --all<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668820321570.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668820321570.png\" alt=\"file\" \/><\/a><\/p>\n<p><strong><span style='color:purple'>\u5728\u6dfb\u52a0\u63d2\u4ef6 basic \u540e\uff0ctask \u591a\u51fa\u4e86 <code>Build tasks<\/code>\u3001<code>Verification tasks<\/code>\u4efb\u52a1\u3002<\/span><\/strong><\/p>\n<p>2\uff09\u8fd0\u884c\u65b0\u7684zip\u4efb\u52a1<\/p>\n<pre><code class=\"language-shell\">.\/gradlew zip<\/code><\/pre>\n<p>3\uff09\u5982\u679c\u79fb\u9664 base \u63d2\u4ef6\u518d\u6267\u884c <code>gradlew zip<\/code> \u5c31\u4f1a\u51fa\u9519<\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668820968450.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668820968450.png\" alt=\"file\" \/><\/a><\/p>\n<p>4\uff09\u4fee\u6539 <code>build.gradle<\/code> \u6587\u4ef6<\/p>\n<ul>\n<li>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/li>\n<\/ul>\n<pre><code>task zip(type: Zip) {\n  from &quot;src&quot;\n  archiveFileName = &quot;basicDemo-2.0.zip&quot;\n  destinationDirectory = file(&#039;.\/dest&#039;)\n}<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"35_Application%E6%8F%92%E4%BB%B6\"><\/span>3.5. Application\u63d2\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><span style='color:red'>Application\u63d2\u4ef6\u662fGradle\u7684\u6838\u5fc3\u63d2\u4ef6\uff0c\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u73b0\u6210\u7684\u4efb\u52a1\uff0c\u53ef\u5e2e\u52a9\u6211\u4eec\u6253\u5305\u548c\u5206\u53d1\u6211\u4eec\u7684\u5e94\u7528\u7a0b\u5e8f\u3002<\/span><br \/>\n\u4f7f\u7528\u65b9\u6cd5\u53c2\u89c1\u5b98\u65b9\u6587\u6863\uff1a<a target=\"_blank\" href=\"https:\/\/docs.gradle.org\/current\/userguide\/application_plugin.html\">https:\/\/docs.gradle.org\/current\/userguide\/application_plugin.html<\/a><\/p>\n<p>1\uff09\u4f7f\u7528application\u63d2\u4ef6<\/p>\n<ul>\n<li>\n<p>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/p>\n<pre><code>plugins {\nid &#039;application&#039;\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>build.gradle.kts\uff08Kotlin\u8bed\u6cd5\uff09<\/p>\n<pre><code>plugins {\napplication\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>2\uff09\u67e5\u770b\u6240\u6709\u7684Task<\/p>\n<pre><code class=\"language-shell\">.\/gradlew tasks --all<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824442360.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824442360.png\" alt=\"file\" \/><\/a><\/p>\n<p><strong><span style='color:purple'>\u5728\u6dfb\u52a0\u63d2\u4ef6 application \u540e\uff0ctask \u591a\u51fa\u4e86 <code>Application tasks<\/code>\u3001<code>Distribution tasks<\/code> \u4ee5\u53ca <code>Documentation tasks<\/code> \u4efb\u52a1\u3002<\/span><\/strong><\/p>\n<p>3\uff09\u6267\u884c build \u547d\u4ee4<\/p>\n<pre><code class=\"language-shell\">.\/gradlew build<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824742987.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824742987.png\" alt=\"file\" \/><\/a><\/p>\n<p>4\uff09\u8fd0\u884c\u7f16\u8bd1\u540e\u7684 jar \u5305<\/p>\n<pre><code class=\"language-shell\">java -cp .\/build\/libs\/basicDemo.jar xin.qishuo.basicDemo.Example<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824892187.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824892187.png\" alt=\"file\" \/><\/a><\/p>\n<p>5\uff09\u4f7f\u7528 <code>gradle run<\/code> \u5374\u62a5\u9519<\/p>\n<pre><code class=\"language-shell\">.\/gradlew run<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824976730.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668824976730.png\" alt=\"file\" \/><\/a><\/p>\n<p>\u56e0\u4e3a\u6ca1\u6709\u6307\u5b9a\u4e3b\u7c7b\uff0c\u5e76\u4e14\u7c7b\u8def\u5f84\u4e0d\u662f\u53ef\u6267\u884c\u7684 jar\u3002<\/p>\n<p>6\uff09\u6307\u5b9a\u9879\u76ee\u7684javaMainClass<\/p>\n<ul>\n<li>build.gradle\uff08Groovy\u8bed\u6cd5\uff0c<span style='color:red'>\u8981\u7279\u522b\u6ce8\u610f\u5927\u5c0f\u5199\u654f\u611f<\/span>\uff09<\/li>\n<\/ul>\n<pre><code>application {\n mainClassName = &#039;xin.qishuo.basicDemo.Example&#039;\n}<\/code><\/pre>\n<p>7\uff09\u518d\u6b21\u6267\u884c run \u547d\u4ee4<\/p>\n<pre><code class=\"language-shell\">.\/gradlew run<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668826976173.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668826976173.png\" alt=\"file\" \/><\/a><\/p>\n<p>8\uff09\u4f7f\u7528JavaExec\u4efb\u52a1\u8fd0\u884c<\/p>\n<ul>\n<li>build.gradle\uff08Groovy\u8bed\u6cd5\uff09<\/li>\n<\/ul>\n<pre><code>plugins {\n  id &#039;java&#039;\n}\n\ntask runWithJavaExec(type: JavaExec) {\n  group = &quot;Execution&quot;\n  description = &quot;Run the main class with JavaExecTask&quot;\n  classpath = sourceSets.main.runtimeClasspath\n  mainClass = &#039;xin.qishuo.basicDemo.Example&#039;\n}<\/code><\/pre>\n<ul>\n<li>\u67e5\u770btask<\/li>\n<\/ul>\n<pre><code class=\"language-shell\">.\/gradlew tasks --all<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668830183032.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668830183032.png\" alt=\"file\" \/><\/a><\/p>\n<ul>\n<li>\u8fd0\u884ctask<\/li>\n<\/ul>\n<pre><code class=\"language-shell\">.\/gradlew runWithJavaExec<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668829414446.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668829414446.png\" alt=\"file\" \/><\/a><\/p>\n<p>\u4efb\u52a1\u7c7b\u578b JavaExec \u7684\u8be6\u7ec6\u4ecb\u7ecd\u89c1 <a target=\"_blank\" href=\"https:\/\/docs.gradle.org\/current\/dsl\/org.gradle.api.tasks.JavaExec.html#org.gradle.api.tasks.JavaExec\" title=\"\u5b98\u7f51\u8bf4\u660e\">\u5b98\u7f51\u8bf4\u660e<\/a>\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E9%99%84%E5%BD%95\"><\/span>\u9644\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E9%99%84%E5%BD%95A_%E7%9B%B8%E5%85%B3%E8%81%94%E7%9A%84%E6%96%87%E7%AB%A0\"><\/span>\u9644\u5f55A. \u76f8\u5173\u8054\u7684\u6587\u7ae0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<p><a target=\"_blank\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\" title=\"Linux\u4e0b\u5b89\u88c5\u5e76\u914d\u7f6eGradle\">Linux\u4e0b\u5b89\u88c5\u5e76\u914d\u7f6eGradle<\/a><\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"http:\/\/dba.qishuo.xin\/?p=2082\" title=\"\u4f7f\u7528 Gradle \u5feb\u901f\u6784\u5efa Java \u9879\u76ee\uff08\u4f8b\u4e8c\uff09\">\u4f7f\u7528 Gradle \u5feb\u901f\u6784\u5efa Java \u9879\u76ee\uff08\u4f8b\u4e8c\uff09<\/a><\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"http:\/\/dba.qishuo.xin\/?p=2198\" title=\"\u5728IDEA\u4e2d\u4f7f\u7528 Gradle \u6784\u5efa Java \u9879\u76ee\uff08\u4f8b\u4e09\uff09\">\u5728IDEA\u4e2d\u4f7f\u7528 Gradle \u6784\u5efa Java \u9879\u76ee\uff08\u4f8b\u4e09\uff09<\/a><\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"http:\/\/dba.qishuo.xin\/?p=2257\" title=\"\u4f7f\u7528 Gradle \u6784\u5efa Java \u591a\u6a21\u5757\u9879\u76ee\uff08\u4f8b\u56db\uff09\">\u4f7f\u7528 Gradle \u6784\u5efa Java \u591a\u6a21\u5757\u9879\u76ee\uff08\u4f8b\u56db\uff09<\/a><\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"http:\/\/dba.qishuo.xin\/?p=2293\" title=\"\u5728IDEA\u4e2d\u4f7f\u7528 Gradle \u6784\u5efa Java Spring Boot\u9879\u76ee\uff08\u4f8b\u4e94\uff09\">\u5728IDEA\u4e2d\u4f7f\u7528 Gradle \u6784\u5efa Java Spring Boot\u9879\u76ee\uff08\u4f8b\u4e94\uff09<\/a><\/p>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E9%99%84%E5%BD%95B_%E5%8F%82%E8%80%83\"><\/span>\u9644\u5f55B. \u53c2\u8003<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Gradle\u7684\u751f\u547d\u5468\u671f\u8be6\u89e3<br \/>\n<a target=\"_blank\" href=\"https:\/\/juejin.cn\/post\/7067719629874921508\">https:\/\/juejin.cn\/post\/7067719629874921508<\/a><\/p>\n<p>Gradle \u7684\u4e0b\u8f7d\u5b89\u88c5\u914d\u7f6e\u4ee5\u53ca\u521b\u5efa\u7b2c\u4e00\u4e2aGradle \u9879\u76ee:<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.cnblogs.com\/xingyunblog\/p\/10428178.html\">https:\/\/www.cnblogs.com\/xingyunblog\/p\/10428178.html<\/a><\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E9%99%84%E5%BD%95C_gradle_%E4%B8%BB%E8%A6%81%E8%A6%81%E7%82%B9\"><\/span>\u9644\u5f55C. gradle \u4e3b\u8981\u8981\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668732269628.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/11\/image-1668732269628.png\" alt=\"file\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u73af\u5883\u63cf\u8ff0 \u63cf\u8ff0\u9879 \u5185\u5bb9 \u64cd\u4f5c\u7cfb\u7edf CentOS L&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[201,178],"tags":[223,202],"class_list":["post-2126","post","type-post","status-publish","format-standard","hentry","category-idea","category-java","tag-gradle","tag-idea"],"_links":{"self":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/2126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2126"}],"version-history":[{"count":56,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/2126\/revisions"}],"predecessor-version":[{"id":2326,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/2126\/revisions\/2326"}],"wp:attachment":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2126"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}