blob: 3bd2bfd52da29569da8f1124aa981bf1cc837177 [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-5.0 plugin-docs plugin-id-default docs-doc-id-contributionGuide/02code-guidelines" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">Code Guidelines | RocketMQ</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/docs/contributionGuide/02code-guidelines"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="5.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-5.0"><meta data-rh="true" name="docsearch:version" content="5.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-5.0"><meta data-rh="true" property="og:title" content="Code Guidelines | RocketMQ"><meta data-rh="true" name="description" content="Introduction"><meta data-rh="true" property="og:description" content="Introduction"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/docs/contributionGuide/02code-guidelines"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/zh/docs/contributionGuide/02code-guidelines" hreflang="zh"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/docs/contributionGuide/02code-guidelines" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/docs/contributionGuide/02code-guidelines" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://R2IYF7ETH7-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="RocketMQ Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="RocketMQ" href="/opensearch.xml">
<script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script>
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-89603173-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="RocketMQ Atom Feed">
<link rel="alternate" type="application/rss+xml" href="/release-notes/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/release-notes/atom.xml" title="RocketMQ Atom Feed">
<link rel="alternate" type="application/rss+xml" href="/news/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/news/atom.xml" title="RocketMQ Atom Feed">
<link rel="stylesheet" href="//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.css">
<script src="//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.js"></script><link rel="stylesheet" href="/assets/css/styles.b006b670.css">
<link rel="preload" href="/assets/js/runtime~main.9fb1bb92.js" as="script">
<link rel="preload" href="/assets/js/main.db9ae330.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache RocketMQ</b></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/zh/docs/contributionGuide/02code-guidelines" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">简体中文</a></li><li><a href="/docs/contributionGuide/02code-guidelines" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Docs</a><ul class="dropdown__menu"><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/">5.0</a></li><li><a class="dropdown__link" href="/docs/4.x/">4.x</a></li></ul></div><a class="navbar__item navbar__link" href="/download">Download</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Blog</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/blog">User Cases</a></li><li><a class="dropdown__link" href="/events">Activity</a></li><li><a class="dropdown__link" href="/release-notes">Change Log</a></li><li><a class="dropdown__link" href="/news">RocketMQ News</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/contact">Join Community</a></li><li><a class="dropdown__link" href="/origin">Origin</a></li><li><a class="dropdown__link" href="/team">Teams</a></li><li><a class="dropdown__link" href="/docs/contributionGuide/01how-to-contribute">Contributions</a></li><li><a class="dropdown__link" href="/enterprise">Enterprises</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/">Introduction</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/quickStart/01quickstart">Quick Start</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/domainModel/01main">Domain Model</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/featureBehavior/01normalmessage">Feature Behavior</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/deploymentOperations/01deploy">Deployment &amp; Operations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/observability/01metrics">Observability</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/sdk/01overview">Client SDK</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/bestPractice/01bestpractice">Best Practice</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/eventbridge/01RocketMQEventBridgeConcepts">RocketMQ EventBridge</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/mqtt/01RocketMQMQTTOverview">RocketMQ MQTT</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/connect/01RocketMQ Connect Overview">RocketMQ Connect</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/streams/01RocketMQ Streams Overview">RocketMQ Streams</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/docs/contributionGuide/01how-to-contribute">Contribution Guide</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributionGuide/01how-to-contribute">How to Contribute</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/contributionGuide/02code-guidelines">Code Guidelines</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributionGuide/03pull-request">GitHub Submit PR</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributionGuide/04release-manual">Release Manual</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Contribution Guide</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Code Guidelines</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 5.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Code Guidelines</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p>This article introduces you to coding specifications and coding guidelines.</p><p>Research shows that 80% of software development time is spent on software maintenance, including source code interpretation, source code refactoring, source code maintenance, etc.</p><p>Agreeing on and enforcing code specifications and guidelines can help improve code readability, maintain code ownership by the development team,</p><p>help engineers understand new code quickly and deeply, and simplify maintenance costs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="idea-programming-template">IDEA Programming Template<a href="#idea-programming-template" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p>The following guides you to import the <code>rmq_codeStyle.xml</code> encoding specification file and <code>Apache.xml</code> contribution license file in IDEA.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="import-code-style">Import Code Style<a href="#import-code-style" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>1.File Path: <code>rocketmq/style/rmq_codestyle.xml</code></p><p>2.Apple OS Import: <code>IntelliJ IDEA &gt; File &gt; Settings &gt; Editor &gt; Code Style</code> enter the <code>Code Style</code>, select the <code>Manage &gt; Import</code> to import the <code>rmq_codestyle.xml</code> and name it <code>Scheme</code></p><p>3.Windows OS Import: <code>IntelliJ IDEA &gt; File &gt; Settings &gt; Editor &gt; Code Style</code> enter the <code>Code Style</code>, select the <code>Show Scheme Actions &gt; Import Scheme &gt; Intellij IDEA code style XML</code> to import the <code>rmq_codestyle.xml</code></p><p><img loading="lazy" alt="1656682140788" src="data:image/png;base64,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" width="813" height="204" class="img_ev3q"></p><p>4.The imported <code>rmq_codeStyle.xml</code> specifies the code&#x27;s indentation format, naming conventions, standard Java conventions, and so on</p><p>5.After IDEA is set, the code is automatically reformat to pass the code style validate of Travis CI</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="import-apache-v2">Import Apache V2<a href="#import-apache-v2" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p>1.File Path: <code>rocketmq/style/copyright/Apache.xml</code></p><p>2.Import: <code>IntelliJ IDEA &gt; File &gt; Settings &gt; Editor &gt; Copyright &gt; Copyright Profiles</code> enter the <code>Copyright Profiles</code>, select the <code>import</code> to import the <code>Apache.xml</code></p><p><img loading="lazy" alt="1656683960857" src="/assets/images/2_ApacheV2-540c72638cb4bd717aec875802b4a096.png" width="848" height="215" class="img_ev3q"></p><p>3.License: <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noopener noreferrer">Apache License, Version 2.0</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="select-apache-copyright">Select Apache Copyright<a href="#select-apache-copyright" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p><img loading="lazy" alt="1656684219109" src="data:image/png;base64,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" width="866" height="160" class="img_ev3q"></p><p>Refer to <a href="https://www.oschina.net/question/54100_9455" target="_blank" rel="noopener noreferrer">Five open source protocols(GPL,LGPL,BSD,MIT,Apache) - OSCHINA - Chinese open source technology exchange community</a> For details</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remove-javadoc-label">Remove Javadoc Label<a href="#remove-javadoc-label" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><ol><li><p>select the <code>Settings &gt; Editor &gt; File and Code Templates &gt; Includes</code></p></li><li><p>enter the <code>File Header</code> , remove the Javadoc label from it</p></li></ol><p><img loading="lazy" alt="1656684039505" src="data:image/png;base64,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" width="857" height="188" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/rocketmq-site/tree/new-official-website/versioned_docs/version-5.0/11-contributionGuide/02code-guidelines.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/contributionGuide/01how-to-contribute"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How to Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/contributionGuide/03pull-request"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">GitHub Submit PR</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#idea-programming-template" class="table-of-contents__link toc-highlight">IDEA Programming Template</a><ul><li><a href="#import-code-style" class="table-of-contents__link toc-highlight">Import Code Style</a></li></ul></li><li><a href="#import-apache-v2" class="table-of-contents__link toc-highlight">Import Apache V2</a></li><li><a href="#select-apache-copyright" class="table-of-contents__link toc-highlight">Select Apache Copyright</a></li><li><a href="#remove-javadoc-label" class="table-of-contents__link toc-highlight">Remove Javadoc Label</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Learn</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/domainModel/01main">Introduction</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/quickStart/01quickstart">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/version">Migration from 4.x to 5.0</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/ApacheRocketMQ" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github</a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">Help</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a class="footer__link-item" href="/release-notes">Changelog</a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/docusaurus" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Licenses<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Security<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Thanks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sponsorship<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://rocketmq.apache.org/" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="Meta Open Source Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="Meta Open Source Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">Copyright © 2022 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.9fb1bb92.js"></script>
<script src="/assets/js/main.db9ae330.js"></script>
</body>
</html>