
{"id":1982,"date":"2022-07-26T19:08:59","date_gmt":"2022-07-26T11:08:59","guid":{"rendered":"http:\/\/dba.qishuo.xin\/?p=1982"},"modified":"2022-08-24T22:07:17","modified_gmt":"2022-08-24T14:07:17","slug":"linux%e4%b8%8b%e5%ae%89%e8%a3%85%e5%b9%b6%e9%85%8d%e7%bd%aegradle","status":"publish","type":"post","link":"http:\/\/dba.qishuo.xin\/?p=1982","title":{"rendered":"Linux\u4e0b\u5b89\u88c5\u5e76\u914d\u7f6eGradle"},"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-69df0880c5829\" 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-69df0880c5829\" 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=1982\/#1_%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83%E5%8F%8A%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6\" >1. \u5b89\u88c5\u73af\u5883\u53ca\u5148\u51b3\u6761\u4ef6<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#11_%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83%E4%BB%8B%E7%BB%8D\" >1.1. \u5b89\u88c5\u73af\u5883\u4ecb\u7ecd<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#12_%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6\" >1.2. \u5148\u51b3\u6761\u4ef6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#2_%E4%B8%8B%E8%BD%BDGradle%E5%AE%89%E8%A3%85%E5%8C%85\" >2. \u4e0b\u8f7dGradle\u5b89\u88c5\u5305<\/a><\/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=1982\/#3_%E5%AE%89%E8%A3%85%E5%B9%B6%E9%85%8D%E7%BD%AE\" >3. \u5b89\u88c5\u5e76\u914d\u7f6e<\/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=1982\/#31_%E5%B0%86%E5%AE%89%E8%A3%85%E5%8C%85%E8%A7%A3%E5%8E%8B%E5%88%B0%E5%90%88%E9%80%82%E7%9A%84%E4%BD%8D%E7%BD%AE\" >3.1. \u5c06\u5b89\u88c5\u5305\u89e3\u538b\u5230\u5408\u9002\u7684\u4f4d\u7f6e<\/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=1982\/#32_%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F\" >3.2. \u914d\u7f6e\u73af\u5883\u53d8\u91cf<\/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=1982\/#33_%E9%AA%8C%E8%AF%81%E6%98%AF%E5%90%A6%E6%88%90%E5%8A%9F\" >3.3. \u9a8c\u8bc1\u662f\u5426\u6210\u529f<\/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=1982\/#34_Gradle%E5%91%BD%E4%BB%A4\" >3.4. Gradle\u547d\u4ee4<\/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=1982\/#35_Gradle%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E4%B8%8EMaven%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E5%AF%B9%E6%AF%94\" >3.5. Gradle\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u4e0eMaven\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u5bf9\u6bd4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#36_Wrapper_%E5%8C%85%E8%A3%85%E5%99%A8\" >3.6. Wrapper \u5305\u88c5\u5668<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#4_%E7%94%A8Gradle%E5%88%9B%E5%BB%BA%E6%99%AE%E9%80%9Ajava%E9%A1%B9%E7%9B%AE\" >4. \u7528Gradle\u521b\u5efa\u666e\u901ajava\u9879\u76ee<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#41_%E5%88%9B%E5%BB%BA%E5%B7%A5%E7%A8%8B\" >4.1. \u521b\u5efa\u5de5\u7a0b<\/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=1982\/#42_%E6%9B%B4%E6%94%B9%E4%B8%89%E4%B8%AAGradle%E8%AE%BE%E7%BD%AE\" >4.2. \u66f4\u6539\u4e09\u4e2aGradle\u8bbe\u7f6e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#43_gradle%E9%95%9C%E5%83%8F%E6%BA%90%E9%85%8D%E7%BD%AE\" >4.3. gradle\u955c\u50cf\u6e90\u914d\u7f6e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#44_%E6%89%BE%E5%9B%9E%E7%BC%BA%E5%A4%B1%E7%9A%84src%E7%9B%AE%E5%BD%95\" >4.4. \u627e\u56de\u7f3a\u5931\u7684src\u76ee\u5f55<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"http:\/\/dba.qishuo.xin\/?p=1982\/#45_%E9%A1%B9%E7%9B%AE%E8%BF%90%E8%A1%8C\" >4.5. \u9879\u76ee\u8fd0\u884c<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"1_%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83%E5%8F%8A%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6\"><\/span>1. \u5b89\u88c5\u73af\u5883\u53ca\u5148\u51b3\u6761\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"11_%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83%E4%BB%8B%E7%BB%8D\"><\/span>1.1. \u5b89\u88c5\u73af\u5883\u4ecb\u7ecd<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<p>\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\uff1a<br \/>\nCentOS Linux release 7.8.2003 (Core)<\/p>\n<\/li>\n<li>\n<p>Java\u7248\u672c\uff1a<br \/>\njava version &quot;1.8.0_161&quot;<br \/>\nJava(TM) SE Runtime Environment (build 1.8.0_161-b12)<br \/>\nJava HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)<\/p>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"12_%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6\"><\/span>1.2. \u5148\u51b3\u6761\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Gradle\u53ef\u4ee5\u8fd0\u884c\u5728\u5927\u591a\u6570\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u4f8b\u5982Linux\u3001MAC\u3001Windows\uff0c\u5e76\u4e14\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u8981\u5b89\u88c5Java JDK\u6216JRE\u7248\u672c8\u6216\u8005\u4ee5\u4e0a\u7684\u7248\u672c\u3002<\/p>\n<p>\u5982\u679c\u914d\u7f6e\u5b8c\u6210\u8bf7\u518d\u7ee7\u7eed\u5f80\u4e0b\u505a\uff0c\u5426\u5219\u8bf7\u5148\u914d\u7f6e\u597dJDK\u73af\u5883\u3002<br \/>\nJDK\u5730\u5740\uff1a<a target=\"_blank\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html<\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_%E4%B8%8B%E8%BD%BDGradle%E5%AE%89%E8%A3%85%E5%8C%85\"><\/span>2. \u4e0b\u8f7dGradle\u5b89\u88c5\u5305<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4eceGradle\u5b98\u7f51\u4e0b\u8f7d\u6700\u5408\u9002\u60a8\u7684\u7248\u672c\uff1a<a target=\"_blank\" href=\"https:\/\/gradle.org\/releases\/\">https:\/\/gradle.org\/releases\/<\/a><\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658811469364.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658811469364.png\" alt=\"file\" \/><\/a><\/p>\n<p>\u6211\u4eec\u9009\u62e9\u624b\u52a8\u5b89\u88c5\uff0c\u4e0b\u8f7d\u4e86\u4e00\u4e2a\u5b8c\u6574\u7248\u672c\uff08\u5305\u542b\u6587\u4ef6\u4e0e\u8d44\u6599\uff09\uff0c\u6587\u4ef6\u540d\u4e3a\uff1a<span style='color:red'>gradle-7.5-all.zip<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_%E5%AE%89%E8%A3%85%E5%B9%B6%E9%85%8D%E7%BD%AE\"><\/span>3. \u5b89\u88c5\u5e76\u914d\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"31_%E5%B0%86%E5%AE%89%E8%A3%85%E5%8C%85%E8%A7%A3%E5%8E%8B%E5%88%B0%E5%90%88%E9%80%82%E7%9A%84%E4%BD%8D%E7%BD%AE\"><\/span>3.1. \u5c06\u5b89\u88c5\u5305\u89e3\u538b\u5230\u5408\u9002\u7684\u4f4d\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u793a\u4f8b\uff1a\u5c06gradle\u5b89\u88c5\u5305\u89e3\u538b\u5230 <code>\/data<\/code> \u76ee\u5f55\uff1a<\/p>\n<pre><code class=\"language-shell\">unzip gradle-7.5-all.zip -d \/data<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"32_%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F\"><\/span>3.2. \u914d\u7f6e\u73af\u5883\u53d8\u91cf<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<p>\u7f16\u8f91 <code>\/etc\/profile<\/code> \u6587\u4ef6\uff0c\u5728\u6587\u4ef6\u672b\u5c3e\u589e\u52a0\u5982\u4e0b\u5185\u5bb9<\/p>\n<pre><code>export GRADLE_HOME=\/data\/gradle-7.5  # \u8be5\u8def\u5f84\u8981\u5305\u542bgradle\u7684bin\u76ee\u5f55\nexport PATH=${GRADLE_HOME}\/bin:$PATH<\/code><\/pre>\n<\/li>\n<li>\n<p>\u91cd\u65b0\u52a0\u8f7d\uff0c\u4f7f\u4e4b\u751f\u6548<\/p>\n<pre><code class=\"language-SHELL\">source \/etc\/profile\necho $GRADLE_HOME<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"33_%E9%AA%8C%E8%AF%81%E6%98%AF%E5%90%A6%E6%88%90%E5%8A%9F\"><\/span>3.3. \u9a8c\u8bc1\u662f\u5426\u6210\u529f<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-SHELL\">~]# gradle --version\n\nWelcome to Gradle 7.5!\n\nHere are the highlights of this release:\n - Support for Java 18\n - Support for building with Groovy 4\n - Much more responsive continuous builds\n - Improved diagnostics for dependency resolution\n\nFor more details see https:\/\/docs.gradle.org\/7.5\/release-notes.html\n\n------------------------------------------------------------\nGradle 7.5\n------------------------------------------------------------\n\nBuild time:   2022-07-14 12:48:15 UTC\nRevision:     c7db7b958189ad2b0c1472b6fe663e6d654a5103\n\nKotlin:       1.6.21\nGroovy:       3.0.10\nAnt:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021\nJVM:          1.8.0_161 (Oracle Corporation 25.161-b12)\nOS:           Linux 3.10.0-1160.53.1.el7.x86_64 amd64<\/code><\/pre>\n<p>\u5982\u679c\u51fa\u73b0\u4e0a\u9762\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u6210\u529f\u4e86\uff0c\u5982\u679c\u6ca1\u51fa\u73b0\u8bf7\u8fd4\u56de\u524d\u9762\u7684\uff0c\u67e5\u770b\u68c0\u67e5\u4e00\u4e0b\u81ea\u5df1\u7684\u6b65\u9aa4\u662f\u5426\u5b58\u5728\u95ee\u9898.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"34_Gradle%E5%91%BD%E4%BB%A4\"><\/span>3.4. Gradle\u547d\u4ee4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code>gradle -v                  \/\/\u7248\u672c\u53f7\ngradle clean               \/\/\u6e05\u9664build\u6587\u4ef6\u5939\ngradle build               \/\/\u68c0\u67e5\u4f9d\u8d56\u5e76\u6253\u5305\ngradle assembleDebug       \/\/\u7f16\u8bd1\u6253\u5305Debug\u5305\ngradle assembleRelease     \/\/\u7f16\u8bd1\u6253\u5305Release\u5305\ngradle installRelease      \/\/\u6253\u5305\u5e76\u5b89\u88c5Release\u5305\ngradle unstallRelease      \/\/\u5378\u8f7dRelease\u5305\ngradle dependencies        \/\/\u67e5\u770b\u4f9d\u8d56\u56fe\u8868\ngradle clean build -x test \/\/\u8df3\u8fc7\u6d4b\u8bd5\u7f16\u8bd1\ngradle --profile build     \/\/\u5206\u6790\u6784\u5efa\u4efb\u52a1\ngradle build --dry-run     \/\/\u7f16\u8bd1\u5e76\u4e0d\u6267\u884c\u4efb\u52a1\ngradle install             \/\/\u5b89\u7f6e\u9879\u76eejar\u5305\u5230\u672c\u5730Maven\u4ed3\u5e93\ngradle tasks               \/\/\u67e5\u770bGradle\u4efb\u52a1\ngradle tasks --all         \/\/\u67e5\u770b\u6240\u6709Gradle\u4efb\u52a1\ngradle build --daemon      \/\/\u4f7f\u7528Gradle\u5b88\u62a4\u7a0b\u5e8f(Daemon)\ngradle build --offline     \/\/\u7528\u79bb\u7ebf\u6a21\u5f0f\u8fd0\u884c\ngradle clean build --refresh-dependencies     \/\/\u5237\u65b0Gradle\u4f9d\u8d56\u7f13\u5b58<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"35_Gradle%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E4%B8%8EMaven%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E5%AF%B9%E6%AF%94\"><\/span>3.5. Gradle\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u4e0eMaven\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u5bf9\u6bd4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658881524332.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658881524332.png\" alt=\"file\" \/><\/a><\/p>\n<p>\u8bf4\u660e\uff1a<\/p>\n<ul>\n<li>\u53ea\u6709war\u5de5\u7a0b\u624d\u6709webapp\u76ee\u5f55\uff0c\u5bf9\u4e8e\u666e\u901a\u7684jar\u5de5\u7a0b\u5e76\u6ca1\u6709webapp\u76ee\u5f55<\/li>\n<li><code>gradlew<\/code> \u4e0e <code>gradlew.bat<\/code> \u6267\u884c\u7684\u6307\u5b9a wrapper \u7248\u672c\u4e2d\u7684 gradle \u6307\u4ee4\uff0c\u4e0d\u662f\u672c\u5730\u5b89\u88c5\u7684gradle\u6307\u4ee4\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff1a<br \/>\n<a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658882856958.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658882856958.png\" alt=\"file\" \/><\/a><\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"36_Wrapper_%E5%8C%85%E8%A3%85%E5%99%A8\"><\/span>3.6. Wrapper \u5305\u88c5\u5668<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><code>Gradle Wrapper<\/code> \u5b9e\u9645\u4e0a\u5c31\u662f\u5bf9 Gradle \u7684\u4e00\u5c42\u5305\u88c5\uff0c\u7528\u4e8e\u89e3\u51b3\u5b9e\u9645\u5f00\u53d1\u4e2d\u53ef\u80fd\u4f1a\u9047\u5230\u7684\u4e0d\u540c\u7684\u9879\u76ee\u9700\u8981\u4e0d\u540c\u7248\u672c\u7684 Gradle \u95ee\u9898\u3002\u4f8b\u5982\uff1a\u628a\u81ea\u5df1\u7684\u4ee3\u7801\u5171\u4eab\u7ed9\u5176\u4ed6\u4eba\u4f7f\u7528\uff0c\u53ef\u80fd\u51fa\u73b0\u5982\u4e0b\u60c5\u51b5:<\/p>\n<ul>\n<li>\u5bf9\u65b9\u7535\u8111\u6ca1\u6709\u5b89\u88c5 Gradle<\/li>\n<li>\u5bf9\u65b9\u7535\u8111\u5b89\u88c5\u8fc7 Gradle\uff0c\u4f46\u662f\u7248\u672c\u592a\u65e7<\/li>\n<\/ul>\n<p>\u8fd9\u65f6\u5019\u5c31\u53ef\u4ee5\u8003\u8651\u4f7f\u7528 Gradle Wrapper \u4e86\uff0c\u8fd9\u4e5f\u662f\u5b98\u65b9\u5efa\u8bae\u4f7f\u7528Gradle Wrapper\u7684\u539f\u56e0\u3002\u5b9e\u9645\u4e0a\u6709\u4e86 Gradle Wrapper \u4e4b\u540e\uff0c\u672c\u5730\u662f\u53ef\u4ee5\u4e0d\u914d\u7f6e Gradle \u7684\uff0c\u4e0b\u8f7d Gradle \u9879\u76ee\u540e\uff0c\u4f7f\u7528 gradle \u9879\u76ee\u81ea\u5e26\u7684 wrapper \u64cd\u4f5c\u4e5f\u662f\u53ef\u4ee5\u7684\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_%E7%94%A8Gradle%E5%88%9B%E5%BB%BA%E6%99%AE%E9%80%9Ajava%E9%A1%B9%E7%9B%AE\"><\/span>4. \u7528Gradle\u521b\u5efa\u666e\u901ajava\u9879\u76ee<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"41_%E5%88%9B%E5%BB%BA%E5%B7%A5%E7%A8%8B\"><\/span>4.1. \u521b\u5efa\u5de5\u7a0b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658831820816.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658831820816.png\" alt=\"file\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658831955525.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658831955525.png\" alt=\"file\" \/><\/a><\/p>\n<p><strong><span style='color:red'>\u6ce8\u610f\uff1a\u70b9\u51fb\u5b8c\u6210\u540e\uff0cidea\u4f1a\u81ea\u52a8\u53bb\u4e0b\u8f7dGradle\uff0c\u6211\u4eec\u70b9\u51fb\u53f3\u8fb9\u7684\u53d6\u6d88\u6309\u94ae\uff0c\u5c06\u4e0b\u8f7d\u53d6\u6d88\uff0c\u914d\u7f6e\u6211\u4eec\u81ea\u5df1\u4e0b\u8f7d\u7684Gradle\u7248\u672c\u3002<\/span><\/strong><\/p>\n<h4><span class=\"ez-toc-section\" id=\"42_%E6%9B%B4%E6%94%B9%E4%B8%89%E4%B8%AAGradle%E8%AE%BE%E7%BD%AE\"><\/span>4.2. \u66f4\u6539\u4e09\u4e2aGradle\u8bbe\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Gradle user home\uff1a\u6211\u4eec\u5728\u5b89\u88c5Gradle\u65f6\u6307\u5b9a\u7684\u73af\u5883\u53d8\u91cf <code>GRADLE_USER_HOME<\/code> \u7684\u503c\u3002<\/p>\n<ul>\n<li>\u5982\u679c\u6ca1\u6709\u65b0\u5efa.gradle\u8fd9\u4e2a\u76ee\u5f55\uff0c\u8fd9\u91cc\u7684\u9ed8\u8ba4\u503c\u4e3a <code>\/root\/.gradle<\/code><\/li>\n<li>\u5982\u679c\u65b0\u5efa.gradle\u8fd9\u4e2a\u76ee\u5f55\uff0c\u4f46\u6ca1\u6709\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u4ee5\u540e\u6bcf\u6b21\u7528Gradle\u6784\u5efa\u5de5\u7a0b\uff0c\u90fd\u8981\u624b\u52a8\u4fee\u6539\u6b64\u5904\u7684\u503c<\/li>\n<li>\u5982\u679c\u65b0\u5efa.gradle\u8fd9\u4e2a\u76ee\u5f55\u5e76\u8bbe\u7f6e\u4e86\u73af\u5883\u53d8\u91cf <code>GRADLE_USER_HOME<\/code>\uff0cidea\u5c31\u80fd\u81ea\u52a8\u63a2\u6d4b\u6b64\u5904Gradle user home\u7684\u503c\u4e86<\/li>\n<\/ul>\n<p><strong><span style='color:red'>gradle user home \uff1a\u4e0b\u8f7d\u6587\u4ef6\u7684\u8def\u5f84<\/span><\/strong><\/p>\n<p><strong><span style='color:red'>user gradle from :\u9009\u62e9\u672c\u5730\u7684gradle\u8def\u5f84<\/span><\/strong><\/p>\n<p><strong><span style='color:red'>gradle jvm\uff1a\u9009\u62e9\u672c\u5730jdk<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658896964496.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658896964496.png\" alt=\"file\" \/><\/a><\/p>\n<h4><span class=\"ez-toc-section\" id=\"43_gradle%E9%95%9C%E5%83%8F%E6%BA%90%E9%85%8D%E7%BD%AE\"><\/span>4.3. gradle\u955c\u50cf\u6e90\u914d\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u9879\u76ee\u914d\u7f6e<\/li>\n<\/ul>\n<pre><code>repositories {\n    \/\/ \u963f\u91cc\u4e91\u955c\u50cf\n    maven { url &#039;https:\/\/maven.aliyun.com\/repository\/public\/&#039; }\n    mavenCentral()\n}<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832706781.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832706781.png\" alt=\"file\" \/><\/a><\/p>\n<ul>\n<li>\u5168\u5c40\u914d\u7f6e<br \/>\n\u5728gradle\u7684\u5b89\u88c5\u76ee\u5f55\u7684 <code>init.d<\/code> \u76ee\u5f55\u4e0b\uff08\u4f8b\u5982\uff1a<code>\/data\/gradle-7.5\/init.d<\/code>\uff09\u521b\u5efa <code>init.gradle<\/code> \u6587\u4ef6,\u5176\u5185\u5bb9\u5982\u4e0b\uff1a<\/li>\n<\/ul>\n<pre><code>allprojects{\n    repositories {\n        def ALIYUN_REPOSITORY_URL = &#039;https:\/\/maven.aliyun.com\/repository\/public\/&#039;\n        def ALIYUN_JCENTER_URL = &#039;https:\/\/maven.aliyun.com\/repository\/jcenter\/&#039;\n        def ALIYUN_GOOGLE_URL = &#039;https:\/\/maven.aliyun.com\/repository\/google\/&#039;\n        def ALIYUN_GRADLE_PLUGIN_URL = &#039;https:\/\/maven.aliyun.com\/repository\/gradle-plugin\/&#039;\n        all { ArtifactRepository repo -&gt;\n            if(repo instanceof MavenArtifactRepository){\n                def url = repo.url.toString()\n                if (url.startsWith(&#039;https:\/\/repo1.maven.org\/maven2\/&#039;)) {\n                    project.logger.lifecycle &quot;Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL.&quot;\n                    remove repo\n                }\n                if (url.startsWith(&#039;https:\/\/jcenter.bintray.com\/&#039;)) {\n                    project.logger.lifecycle &quot;Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL.&quot;\n                    remove repo\n                }\n                if (url.startsWith(&#039;https:\/\/dl.google.com\/dl\/android\/maven2\/&#039;)) {\n                    project.logger.lifecycle &quot;Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL.&quot;\n                    remove repo\n                }\n                if (url.startsWith(&#039;https:\/\/plugins.gradle.org\/m2\/&#039;)) {\n                    project.logger.lifecycle &quot;Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL.&quot;\n                    remove repo\n                }\n            }\n        }\n        maven { url ALIYUN_REPOSITORY_URL }\n        maven { url ALIYUN_JCENTER_URL }\n        maven { url ALIYUN_GOOGLE_URL }\n        maven { url ALIYUN_GRADLE_PLUGIN_URL }\n    }\n\n}<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"44_%E6%89%BE%E5%9B%9E%E7%BC%BA%E5%A4%B1%E7%9A%84src%E7%9B%AE%E5%BD%95\"><\/span>4.4. \u627e\u56de\u7f3a\u5931\u7684src\u76ee\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u521b\u5efa\u5de5\u7a0b\u540e\uff0c\u53d1\u73b0\u6ca1\u6709src\u76ee\u5f55\uff0c\u6309\u4e0b\u56fe\u8bbe\u7f6e\u5373\u53ef:<\/p>\n<pre><code>\/\/ \u521b\u5efa\u7f3a\u5931\u7684src\u76ee\u5f55\ntask createDirs {\n    sourceSets*.java.srcDirs*.each{\n        it.mkdirs()\n    }\n    sourceSets*.resources.srcDirs*.each{\n        it.mkdirs()\n    }\n}<\/code><\/pre>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832889861.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832889861.png\" alt=\"file\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832995426.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658832995426.png\" alt=\"file\" \/><\/a><\/p>\n<h4><span class=\"ez-toc-section\" id=\"45_%E9%A1%B9%E7%9B%AE%E8%BF%90%E8%A1%8C\"><\/span>4.5. \u9879\u76ee\u8fd0\u884c<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u5728 <code>src\/main\/java<\/code> \u76ee\u5f55\u4e0b\u65b0\u5efa\u4e00\u4e2a\u5305\uff0c\u518d\u5efa\u4e00\u4e2a\u7c7b<\/p>\n<p><a href=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658833669444.png\" data-fancybox=\"images\" data-fancybox=\"images\"><img decoding=\"async\" src=\"http:\/\/dba.qishuo.xin\/wp-content\/uploads\/2022\/07\/image-1658833669444.png\" alt=\"file\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u5b89\u88c5\u73af\u5883\u53ca\u5148\u51b3\u6761\u4ef6 1.1. \u5b89\u88c5\u73af\u5883\u4ecb\u7ecd &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[178],"tags":[223,48],"class_list":["post-1982","post","type-post","status-publish","format-standard","hentry","category-java","tag-gradle","tag-linux"],"_links":{"self":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/1982","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=1982"}],"version-history":[{"count":24,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/1982\/revisions"}],"predecessor-version":[{"id":2078,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=\/wp\/v2\/posts\/1982\/revisions\/2078"}],"wp:attachment":[{"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1982"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dba.qishuo.xin\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}