blob: 06f65ebf596bd8d01fa9d857d11c202195c5a92d [file] [log] [blame]
<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://cn.dubbo.apache.org/en/latest/contribution-guidelines/><script>var _hmt=_hmt||[];(function(){var e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv=Content-Security-Policy content="frame-src *"><meta name=generator content="Hugo 0.122.0"><link rel=alternate type=application/rss+xml href=https://cn.dubbo.apache.org/en/latest/contribution-guidelines/index.xml><link rel="shortcut icon" type=image/png href=/imgs/favicon.png><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=manifest href=/manifest.webmanifest><title>Dubbo Contribution Guidelines | Apache Dubbo</title><meta property="og:title" content="Dubbo Contribution Guidelines">
<meta property="og:description" content="Dubbo Contribution Guidelines"><meta property="og:type" content="website"><meta property="og:url" content="https://cn.dubbo.apache.org/en/latest/contribution-guidelines/"><meta itemprop=name content="Dubbo Contribution Guidelines"><meta itemprop=description content="Dubbo Contribution Guidelines"><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Contribution Guidelines"><meta name=twitter:description content="Dubbo Contribution Guidelines"><script async src="https://www.googletagmanager.com/gtag/js?id=G-NM6FFMT51J"></script><script>var doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link rel=preload href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css as=style><link href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script><meta name=theme-color content="#326ce5"><link rel=stylesheet href=/css/feature-states.css><meta name=description content="Dubbo Contribution Guidelines"><meta property="og:description" content="Dubbo Contribution Guidelines"><meta name=twitter:description content="Dubbo Contribution Guidelines"><meta property="og:url" content="https://cn.dubbo.apache.org/en/latest/contribution-guidelines/"><meta property="og:title" content="Dubbo Contribution Guidelines"><meta name=twitter:title content="Dubbo Contribution Guidelines"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script><link href=/css/community.css rel=stylesheet><link href=/css/contactus.css rel=stylesheet><link href=/css/language.css rel=stylesheet><script src=/js/script.js></script></head><body class="td-section td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a class=navbar-brand href=/en/><span class=navbar-logo></span><span class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/overview/><span>Overview</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/docs3-v2/><span>SDK Manual</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/blog/><span>Blog</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/download/><span>Download</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://start.dubbo.apache.org/bootstrap.html target=_blank><span>Initializer</span><i class='fas fa-external-link-alt'></i></a></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdownMenuLink role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh-cn/>中文</a></div></li><li class="nav-item dropdown d-lg-block"><div class="nav-item d-none d-lg-block"></div></li></ul></div></nav><section class="header-hero text-white pb-0 light-text"></section></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-md-nowrap"><div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><script>$(function(){$("#td-section-nav a").removeClass("active"),$("#td-section-nav #m-enlatestcontribution-guidelines").addClass("active"),$("#td-section-nav #m-enlatestcontribution-guidelines-li span").addClass("td-sidebar-nav-active-item"),$("#td-section-nav #m-enlatestcontribution-guidelines").parents("li").addClass("active-path"),$("#td-section-nav li.active-path").addClass("show"),$("#td-section-nav li.active-path").children("input").prop("checked",!0),$("#td-section-nav #m-enlatestcontribution-guidelines-li").siblings("li").addClass("show"),$("#td-section-nav #m-enlatestcontribution-guidelines-li").children("ul").children("li").addClass("show"),$("#td-sidebar-menu").toggleClass("d-none")})</script><div id=td-sidebar-menu class="td-sidebar__inner d-none"><div id=content-mobile><form class="td-sidebar__search d-flex align-items-center"><button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav foldable-nav" id=td-section-nav><ul class="td-sidebar-nav__section pr-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatest-li><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestadmin-li><input type=checkbox id=m-enlatestadmin-check>
<label for=m-enlatestadmin-check><a href=/en/latest/admin/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestadmin><span>admin</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdk-li><input type=checkbox id=m-enlatestjava-sdk-check>
<label for=m-enlatestjava-sdk-check><a href=/en/latest/java-sdk/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdk><span>Dubbo Java SDK</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv2x-li><input type=checkbox id=m-enlatestjava-sdkv2x-check>
<label for=m-enlatestjava-sdkv2x-check><a href=/en/latest/java-sdk/v2.x/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2x><span>v2.x</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv2xintroduction-li><input type=checkbox id=m-enlatestjava-sdkv2xintroduction-check>
<label for=m-enlatestjava-sdkv2xintroduction-check><a href=/en/latest/java-sdk/v2.x/introduction/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xintroduction><span>Introduction</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xintroductionusers-li><input type=checkbox id=m-enlatestjava-sdkv2xintroductionusers-check>
<label for=m-enlatestjava-sdkv2xintroductionusers-check><a href=/en/latest/java-sdk/v2.x/introduction/users/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestjava-sdkv2xintroductionusers><span>Users</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv2xquick-start-li><input type=checkbox id=m-enlatestjava-sdkv2xquick-start-check>
<label for=m-enlatestjava-sdkv2xquick-start-check><a href=/en/latest/java-sdk/v2.x/quick-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xquick-start><span>Quick start</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xquick-startquick-start-li><input type=checkbox id=m-enlatestjava-sdkv2xquick-startquick-start-check>
<label for=m-enlatestjava-sdkv2xquick-startquick-start-check><a href=/en/latest/java-sdk/v2.x/quick-start/quick-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestjava-sdkv2xquick-startquick-start><span>快速开始</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv2xconcepts-and-architecture-li><input type=checkbox id=m-enlatestjava-sdkv2xconcepts-and-architecture-check>
<label for=m-enlatestjava-sdkv2xconcepts-and-architecture-check><a href=/en/latest/java-sdk/v2.x/concepts-and-architecture/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xconcepts-and-architecture><span>Concepts & Architecture</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xconcepts-and-architectureusers-li><input type=checkbox id=m-enlatestjava-sdkv2xconcepts-and-architectureusers-check>
<label for=m-enlatestjava-sdkv2xconcepts-and-architectureusers-check><a href=/en/latest/java-sdk/v2.x/concepts-and-architecture/users/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestjava-sdkv2xconcepts-and-architectureusers><span>用户列表</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xadvanced-features-and-usage-li><input type=checkbox id=m-enlatestjava-sdkv2xadvanced-features-and-usage-check>
<label for=m-enlatestjava-sdkv2xadvanced-features-and-usage-check><a href=/en/latest/java-sdk/v2.x/advanced-features-and-usage/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xadvanced-features-and-usage><span>Advanced Features & Usage</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xreference-manual-li><input type=checkbox id=m-enlatestjava-sdkv2xreference-manual-check>
<label for=m-enlatestjava-sdkv2xreference-manual-check><a href=/en/latest/java-sdk/v2.x/reference-manual/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xreference-manual><span>Reference Manual</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xupgrades-and-compatibility-li><input type=checkbox id=m-enlatestjava-sdkv2xupgrades-and-compatibility-check>
<label for=m-enlatestjava-sdkv2xupgrades-and-compatibility-check><a href=/en/latest/java-sdk/v2.x/upgrades-and-compatibility/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xupgrades-and-compatibility><span>Upgrades & Compatibility</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv2xcontributing-li><input type=checkbox id=m-enlatestjava-sdkv2xcontributing-check>
<label for=m-enlatestjava-sdkv2xcontributing-check><a href=/en/latest/java-sdk/v2.x/contributing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv2xcontributing><span>Contributing</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv3x-li><input type=checkbox id=m-enlatestjava-sdkv3x-check>
<label for=m-enlatestjava-sdkv3x-check><a href=/en/latest/java-sdk/v3.x/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3x><span>v3.x</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv3xintroduction-li><input type=checkbox id=m-enlatestjava-sdkv3xintroduction-check>
<label for=m-enlatestjava-sdkv3xintroduction-check><a href=/en/latest/java-sdk/v3.x/introduction/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xintroduction><span>Introduction</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xintroductionusers-li><input type=checkbox id=m-enlatestjava-sdkv3xintroductionusers-check>
<label for=m-enlatestjava-sdkv3xintroductionusers-check><a href=/en/latest/java-sdk/v3.x/introduction/users/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestjava-sdkv3xintroductionusers><span>Users</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xquick-start-li><input type=checkbox id=m-enlatestjava-sdkv3xquick-start-check>
<label for=m-enlatestjava-sdkv3xquick-start-check><a href=/en/latest/java-sdk/v3.x/quick-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xquick-start><span>Quick start</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestjava-sdkv3xconcepts-and-architecture-li><input type=checkbox id=m-enlatestjava-sdkv3xconcepts-and-architecture-check>
<label for=m-enlatestjava-sdkv3xconcepts-and-architecture-check><a href=/en/latest/java-sdk/v3.x/concepts-and-architecture/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xconcepts-and-architecture><span>Concepts & Architecture</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xconcepts-and-architectureusers-li><input type=checkbox id=m-enlatestjava-sdkv3xconcepts-and-architectureusers-check>
<label for=m-enlatestjava-sdkv3xconcepts-and-architectureusers-check><a href=/en/latest/java-sdk/v3.x/concepts-and-architecture/users/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestjava-sdkv3xconcepts-and-architectureusers><span>用户列表</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xadvanced-features-and-usage-li><input type=checkbox id=m-enlatestjava-sdkv3xadvanced-features-and-usage-check>
<label for=m-enlatestjava-sdkv3xadvanced-features-and-usage-check><a href=/en/latest/java-sdk/v3.x/advanced-features-and-usage/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xadvanced-features-and-usage><span>Advanced Features & Usage</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xreference-manual-li><input type=checkbox id=m-enlatestjava-sdkv3xreference-manual-check>
<label for=m-enlatestjava-sdkv3xreference-manual-check><a href=/en/latest/java-sdk/v3.x/reference-manual/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xreference-manual><span>Reference Manual</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xupgrades-and-compatibility-li><input type=checkbox id=m-enlatestjava-sdkv3xupgrades-and-compatibility-check>
<label for=m-enlatestjava-sdkv3xupgrades-and-compatibility-check><a href=/en/latest/java-sdk/v3.x/upgrades-and-compatibility/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xupgrades-and-compatibility><span>Upgrades & Compatibility</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestjava-sdkv3xcontributing-li><input type=checkbox id=m-enlatestjava-sdkv3xcontributing-check>
<label for=m-enlatestjava-sdkv3xcontributing-check><a href=/en/latest/java-sdk/v3.x/contributing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestjava-sdkv3xcontributing><span>Contributing</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestgolang-sdk-li><input type=checkbox id=m-enlatestgolang-sdk-check>
<label for=m-enlatestgolang-sdk-check><a href=/en/latest/golang-sdk/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestgolang-sdk><span>golang</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestpixiu-li><input type=checkbox id=m-enlatestpixiu-check>
<label for=m-enlatestpixiu-check><a href=/en/latest/pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestpixiu><span>pixiu</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestfacade-docs-li><input type=checkbox id=m-enlatestfacade-docs-check>
<label for=m-enlatestfacade-docs-check><a href=/en/latest/facade-docs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestfacade-docs><span>Documentation</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestfacade-docswhat-li><input type=checkbox id=m-enlatestfacade-docswhat-check>
<label for=m-enlatestfacade-docswhat-check><a href=/en/latest/facade-docs/what/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestfacade-docswhat><span>What is Dubbo?</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docswhatoverview-li><input type=checkbox id=m-enlatestfacade-docswhatoverview-check>
<label for=m-enlatestfacade-docswhatoverview-check><a href=/en/latest/facade-docs/what/overview/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestfacade-docswhatoverview><span>Introduction</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docswhatcore-concepts-li><input type=checkbox id=m-enlatestfacade-docswhatcore-concepts-check>
<label for=m-enlatestfacade-docswhatcore-concepts-check><a href=/en/latest/facade-docs/what/core-concepts/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestfacade-docswhatcore-concepts><span>Core Concepts</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docswhatecosystem-li><input type=checkbox id=m-enlatestfacade-docswhatecosystem-check>
<label for=m-enlatestfacade-docswhatecosystem-check><a href=/en/latest/facade-docs/what/ecosystem/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestfacade-docswhatecosystem><span>Dubbo Ecosystem</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestfacade-docswhy-li><input type=checkbox id=m-enlatestfacade-docswhy-check>
<label for=m-enlatestfacade-docswhy-check><a href=/en/latest/facade-docs/why/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestfacade-docswhy><span>Why use Dubbo?</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docswhyadvantage-li><input type=checkbox id=m-enlatestfacade-docswhyadvantage-check>
<label for=m-enlatestfacade-docswhyadvantage-check><a href=/en/latest/facade-docs/why/advantage/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestfacade-docswhyadvantage><span>Advantage</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestfacade-docshow-li><input type=checkbox id=m-enlatestfacade-docshow-check>
<label for=m-enlatestfacade-docshow-check><a href=/en/latest/facade-docs/how/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestfacade-docshow><span>How to use Dubbo?</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docshowquick-start-li><input type=checkbox id=m-enlatestfacade-docshowquick-start-check>
<label for=m-enlatestfacade-docshowquick-start-check><a href=/en/latest/facade-docs/how/quick-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestfacade-docshowquick-start><span>Quick Start</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestfacade-docscontact-li><input type=checkbox id=m-enlatestfacade-docscontact-check>
<label for=m-enlatestfacade-docscontact-check><a href=/en/latest/facade-docs/contact/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestfacade-docscontact><span>How to Contact the Dubbo Community?</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestdownload-li><input type=checkbox id=m-enlatestdownload-check>
<label for=m-enlatestdownload-check><a href=/en/latest/download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestdownload><span>Download</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestnotices-li><input type=checkbox id=m-enlatestnotices-check>
<label for=m-enlatestnotices-check><a href=/en/latest/notices/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestnotices><span>Announcement</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestnoticessecurity-li><input type=checkbox id=m-enlatestnoticessecurity-check>
<label for=m-enlatestnoticessecurity-check><a href=/en/latest/notices/security/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestnoticessecurity><span>安全漏洞</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcommunity-li><input type=checkbox id=m-enlatestcommunity-check>
<label for=m-enlatestcommunity-check><a href=/en/latest/community/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestcommunity><span>Community</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestcontribution-guidelines-li><input type=checkbox id=m-enlatestcontribution-guidelines-check>
<label for=m-enlatestcontribution-guidelines-check><a href=/en/latest/contribution-guidelines/ title="Dubbo Contribution Guidelines" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestcontribution-guidelines><span>Contribution</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestcontribution-guidelinescontributor-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributor-check>
<label for=m-enlatestcontribution-guidelinescontributor-check><a href=/en/latest/contribution-guidelines/contributor/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestcontribution-guidelinescontributor><span>Contributor Guidelines</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributorbecome-a-committer_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributorbecome-a-committer_dev-check>
<label for=m-enlatestcontribution-guidelinescontributorbecome-a-committer_dev-check><a href=/en/latest/contribution-guidelines/contributor/become-a-committer_dev/ title="如何成为 Dubbo Committer" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributorbecome-a-committer_dev><span>成为 Committer</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributorcla-signing-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributorcla-signing-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributorcla-signing-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/cla-signing-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributorcla-signing-guide_dev><span>CLA 签署向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributornew-contributor-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributornew-contributor-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributornew-contributor-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/ title=新贡献者向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributornew-contributor-guide_dev><span>新手向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributormailing-list-subscription-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributormailing-list-subscription-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributormailing-list-subscription-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/ title=邮件列表订阅向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributormailing-list-subscription-guide_dev><span>邮件组向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributorreporting-security-issues_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributorreporting-security-issues_dev-check>
<label for=m-enlatestcontribution-guidelinescontributorreporting-security-issues_dev-check><a href=/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/ title=报告安全问题 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributorreporting-security-issues_dev><span>反馈漏洞</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributorsoftware-donation-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributorsoftware-donation-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributorsoftware-donation-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/software-donation-guide_dev/ title=软件捐献向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributorsoftware-donation-guide_dev><span>捐献向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributordubbo-extension-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributordubbo-extension-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributordubbo-extension-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev/ title="扩展 Dubbo 向导" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributordubbo-extension-guide_dev><span>扩展 Dubbo</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescontributortest-coverage-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescontributortest-coverage-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescontributortest-coverage-guide_dev-check><a href=/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescontributortest-coverage-guide_dev><span>测试覆盖率向导</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enlatestcontribution-guidelinescommitter-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitter-check>
<label for=m-enlatestcontribution-guidelinescommitter-check><a href=/en/latest/contribution-guidelines/committer/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enlatestcontribution-guidelinescommitter><span>Committer Guidelines</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescommitternew-committer-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitternew-committer-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescommitternew-committer-guide_dev-check><a href=/en/latest/contribution-guidelines/committer/new-committer-guide_dev/ title="Apache 提交者注册流程" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescommitternew-committer-guide_dev><span>注册流程</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescommitterrelease-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitterrelease-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescommitterrelease-guide_dev-check><a href=/en/latest/contribution-guidelines/committer/release-guide_dev/ title="如何准备 Apache Release" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescommitterrelease-guide_dev><span>发版准备</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescommitterwebsite-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitterwebsite-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescommitterwebsite-guide_dev-check><a href=/en/latest/contribution-guidelines/committer/website-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescommitterwebsite-guide_dev><span>网站向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescommitterlabel-an-issue-guide_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitterlabel-an-issue-guide_dev-check>
<label for=m-enlatestcontribution-guidelinescommitterlabel-an-issue-guide_dev-check><a href=/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/ title=给问题打标签 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescommitterlabel-an-issue-guide_dev><span>问题标签</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enlatestcontribution-guidelinescommitterapache-dubbo-page_dev-li><input type=checkbox id=m-enlatestcontribution-guidelinescommitterapache-dubbo-page_dev-check>
<label for=m-enlatestcontribution-guidelinescommitterapache-dubbo-page_dev-check><a href=/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/ title="官方 Dubbo 主页的维护" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enlatestcontribution-guidelinescommitterapache-dubbo-page_dev><span>官方主页</span></a></label></li></ul></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/en/latest/>Latests</a></li><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/en/latest/contribution-guidelines/ aria-disabled=true class="btn-link disabled">Contribution</a></li></ol></nav><div class=td-content><h1>Dubbo Contribution Guidelines</h1><div class=lead>Dubbo Contribution Guidelines</div><header class=article-meta></header><h2 id=为-dubbo-做贡献>为 Dubbo 做贡献</h2><p>Dubbo 是在非限制性的 Apache 2.0 许可下发布的,遵循标准的 Github 开发流程,使用Github追踪处理问题,并将 pull request 合并到 master 中。如果您想为 Dubbo 做贡献(即便是一些微小的),请不要犹豫,遵循下面的指导方针。</p><h3 id=联系我们>联系我们</h3><h4 id=邮件列表>邮件列表</h4><p>邮件列表是讨论几乎所有与 Dubbo 有关事情的推荐方式。有关如何订阅的详细文档,请参阅<a href=https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide>指南</a></p><ul><li><a href=mailto:dev-subscribe@dubbo.apache.org>dev@dubbo.apache.org</a>: 开发邮件列表,如果您在使用或开发Dubbo时遇到任何问题,您可以在此提出问题。</li><li><a href=mailto:commits-subscribe@dubbo.apache.org>commits@dubbo.apache.org</a>: 所有提交将被发送到这个邮件列表。如果您对Dubbo的发展感兴趣,您可以订阅它。</li><li><a href=mailto:notification-subscribe@dubbo.apache.org>notification@dubbo.apache.org</a>: 所有Github <a href=https://github.com/apache/dubbo/issues>issue</a><a href=https://github.com/apache/dubbo/pulls>pull request</a>的更新都会被发送到这个邮件列表。</li></ul><h3 id=报告问题>报告问题</h3><p>在报告任何问题时请遵循<a href="https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md">模版</a></p><h3 id=代码约定>代码约定</h3><p>我们的代码风格几乎和标准 Java 约定一致(流行IDE的默认设置满足这一点),主要有以下附加限制:</p><ul><li><p>如果当前行中有超过 120 个字符,则起一个新的行。</p></li><li><p>确保所有新的 .java 文件都有一个简单的 JavaDoc 类注释,其中至少有一个标识创建日期的标签,最好至少有一个关于该类的解释说明。</p></li><li><p>将ASF许可注释添加到所有新的 .java 文件(从项目中的现有文件复制)</p></li><li><p>请确保没有将 @author 标记添加到您所贡献的文件中,因为 Apache 不使用 @author 标记,其他方式(如cvs)将公平地记录所有您的贡献。</p></li><li><p>为代码添加一些 JavaDoc,如果您更改命名空间,则需要一些 XSD DOC 元素。</p></li><li><p>对于新的特征或重要的修复程序,应该添加单元测试。</p></li><li><p>如果没有其他人使用您的分支,请将它与 master(或主项目中的其他目标分支)同步。</p></li><li><p>当编写提交消息时,请遵循这些约定,如果您正在修复一个现有问题,请在提交消息的末尾添加 Fixes XXX(其中XXX是问题编号)。</p></li></ul><h3 id=贡献流程>贡献流程</h3><p>这是一个贡献者工作流程的大致说明:</p><ul><li>克隆当前项目</li><li>从希望贡献的分支上创新新的分支,通常是 master 分支。</li><li>提交您的更改。</li><li>确保提交消息的格式正确。</li><li>将新分支推送到您克隆的代码库中。</li><li>执行检查表 <a href=https://github.com/apache/dubbo/blob/master/PULL_REQUEST_TEMPLATE.md>pull request模版</a></li><li>在提交 pull request 请求前, 请将您克隆的代码和远程代码库同步,这样您的 pull request 会简单清晰。具体操作如下:</li></ul><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>git remote add upstream git@github.com:apache/dubbo.git
</span></span><span style=display:flex><span>git fetch upstream
</span></span><span style=display:flex><span>git rebase upstream/master
</span></span><span style=display:flex><span>git checkout -b your_awesome_patch
</span></span><span style=display:flex><span>... add some work
</span></span><span style=display:flex><span>git push origin your_awesome_patch
</span></span></code></pre></div><ul><li>提交 pull request 请求到 apache/dubbo 并等待回复。</li></ul><p>谢谢您的贡献!</p><h3 id=代码风格>代码风格</h3><p>我们提供了 IntelliJ idea 的模版文件<a href=https://github.com/apache/dubbo/tree/master/codestyle/dubbo_codestyle_for_idea.xml>dubbo_codestyle_for_idea.xml</a>,您可以将它导入到IDE。</p><p>如果使用 Eclipse,可以通过参考该文件手动配置。</p><p><strong>注意事项</strong></p><p>使用 dubbo_codestyle_for_idea.xml 为你的 IDEA 设置代码格式是贡献代码前至关重要的一个步骤,否则你将会无法通过 Travis CI 的代码风格校验,下面几个步骤给你演示了如何配置代码格式:</p><ol><li>进入菜单页 <code>Editor > Code Style</code></li><li>在 Code Style 页面的 scheme 菜单中点击 manage profiles 选项
在下拉列表中选择 <code>Import Scheme</code>, 接着选择 <code>IntelliJ IDEA code style XML</code> 导入 xml 文件</li><li>输入你的格式名称,方便在不同工程之间进行识别,最后别忘了 ⏎ 来保存更改.</li></ol><p>设置完成后,IDEA 会帮助你自动 reformat 代码</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/en/latest/contribution-guidelines/contributor/>Contributor Guidelines</a></h5><p>Dubbo Contributor Guidelines</p></div><div class=entry><h5><a href=/en/latest/contribution-guidelines/committer/>Committer Guidelines</a></h5><p>Dubbo Committer Guidelines</p></div></div><div id=pre-footer><h2>Feedback</h2><p class=feedback--prompt>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--yes">Yes</button>
<button class="btn btn-primary mb-4 feedback--no">No</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled"),no.disabled=!0,no.classList.add("feedback--button__disabled")};yes.addEventListener("click",()=>{sendFeedback(1),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")}),no.addEventListener("click",()=>{sendFeedback(0),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")})</script><br><div class="text-muted mt-5 pt-3 border-top">Last modified January 2, 2023: <a href=https://github.com/apache/dubbo-website/commit/95a9f4f6c1cbb4425fe12411cd046f4463fee6b5>Enhance en docs (#1798) (95a9f4f6c1c)</a></div></div></main><div class="d-none d-xl-block col-xl-2 td-toc d-print-none"><div class="td-page-meta ml-2 pb-1 pt-2 mb-0"><a href=https://github.com/apache/dubbo-website/edit/master/content/en/latest/contribution-guidelines/_index.md target=_blank><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/apache/dubbo-website/new/master/content/en/latest/contribution-guidelines/_index.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" target=_blank><i class="fa fa-edit fa-fw"></i> Create child page</a>
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%20Contribution%20Guidelines" target=_blank><i class="fab fa-github fa-fw"></i> Create an issue</a>
<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas fa-tasks fa-fw"></i> Create project issue</a></div><nav id=TableOfContents><ul><li><a href=#为-dubbo-做贡献>为 Dubbo 做贡献</a><ul><li><a href=#联系我们>联系我们</a></li><li><a href=#报告问题>报告问题</a></li><li><a href=#代码约定>代码约定</a></li><li><a href=#贡献流程>贡献流程</a></li><li><a href=#代码风格>代码风格</a></li></ul></li></ul></nav></div></div></div></div><footer class="bg-dark py-5 row d-print-none footer-margin-0"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a class=text-white target=_blank rel="noopener noreferrer" href=https://lists.apache.org/list.html?dev@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel="noopener noreferrer" href=https://github.com/apache/dubbo><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Subscribe to mailing list" aria-label="Subscribe to mailing list"><a class=text-white target=_blank rel="noopener noreferrer" href=mailto:dev-subscribe@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>&copy; 2024 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All Rights Reserved</small></div></div></div></footer><div class="row pt-2 pb-2 footer-margin-0"><div class="container-fluid mx-sm-5"><div class=text-center id=my-footer><img alt=apache_logo src=/imgs/apache_logo.png><ul><li><a href=https://www.apache.org>Foundation</a></li><li><a href=https://www.apache.org/licenses/>License</a></li><li><a href=https://dubbo.apache.org/en/overview/notices/>Security</a></li><li><a href=https://www.apache.org/events/current-event>Events</a></li><li><a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html>Privacy</a></li><li><a href=https://www.apache.org/foundation/thanks.html>Thanks</a></li></ul></div></div></div><script src=/js/popper.min.js integrity=sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49 crossorigin=anonymous></script><script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script><script src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug=" crossorigin=anonymous></script><script async src=https://widget.kapa.ai/kapa-widget.bundle.js data-website-id=d763c4f2-f871-400b-aeca-d986c4af73c2 data-project-name="Apache Dubbo" data-project-color=#E8442E data-button-text="Ask AI" data-search-mode-enabled=true data-modal-open-on-command-k=true data-modal-disclaimer="The AI supports multiple languages, but it may not be accessible in China due to recaptcha, a proxy is required." data-project-logo=https://pbs.twimg.com/profile_images/1011849068283191302/FJbH5vbF_400x400.jpg data-modal-example-questions="What is Apache Dubbo?,How to run Apache Dubbo?" data-button-position-top data-button-position-right=20px data-button-position-bottom=200px data-button-position-left></script><script>(function(e,t,n,s){e[s]=e[s]||[];var a=t.getElementsByTagName(n)[0],i=t.createElement(n);i.async=!0,i.id="beacon-aplus",i.setAttribute("exparams","userid=&aplus&sidx=aplusSidex&ckx=aplusCkx"),i.src="//g.alicdn.com/alilog/mlog/aplus_v2.js",i.crossorigin="anonymous",a.parentNode.insertBefore(i,a)})(window,document,"script","aplus_queue"),function(e){var t=e.createElement("script");t.type="text/javascript",t.async=!0,t.src="//g.alicdn.com/aes/??tracker/3.3.4/index.js,tracker-plugin-pv/3.0.5/index.js,tracker-plugin-event/3.0.0/index.js,tracker-plugin-autolog/3.0.3/index.js,tracker-plugin-survey/3.0.3/index.js,tracker-plugin-jserror/3.0.3/index.js,tracker-plugin-resourceError/3.0.3/index.js",t.onload=function(){window.AES_CONFIG=window.AES_CONFIG||{env:"prod"},window.aes=new AES({pid:"zN245h",user_type:6}),window.AESPluginAutologConfig={exposure:"auto"},window.AEMPluginInstances=[aes.use(AESPluginPV,window.AESPluginPVConfig||{enableHistory:!0}),aes.use(AESPluginEvent,window.AESPluginEventConfig||{}),aes.use(AESPluginSurvey,window.AESPluginEventConfig||{}),aes.use(AESPluginAutolog,window.AESPluginAutologConfig||{}),aes.use(AESPluginJSError,window.AESPluginJSError||{}),aes.use(AESPluginResourceError,window.AESPluginResourceError||{})]},setTimeout(function(){e.getElementsByTagName("body")[0].appendChild(t)},800)}(document)</script></body></html>