| <!doctype html> |
| <html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="generator" content="Docusaurus v3.1.1"> |
| <title data-rh="true">How to Package and Deploy Answer Plugins | Answer</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://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="keywords" content="Free, Open-source, Q&A Platform, Knowledge Sharing Platform, Community Forum, Knowledge Base, Developer Hub, Support Center"><meta data-rh="true" name="http-equiv" content="Content-Security-Policy" value="default-src 'self' data: blob: 'unsafe-inline' https://www.apachecon.com/ https://www.communityovercode.org/ https://analytics.apache.org/ https://api-js.mixpanel.com/track/; connect-src https://api-js.mixpanel.com/track/;"><meta data-rh="true" property="og:site_name" content="Answer"><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="og:title" content="How to Package and Deploy Answer Plugins | Answer"><meta data-rh="true" name="description" content="Follow this step-by-step guide to package plugins for your Answer."><meta data-rh="true" property="og:description" content="Follow this step-by-step guide to package plugins for your Answer."><meta data-rh="true" property="og:image" content="https://answer.apache.org/assets/images/2024-07-02-cover@4x-89c4e985809a1a211fda78f4d5acb3a0.png"><meta data-rh="true" name="twitter:image" content="https://answer.apache.org/assets/images/2024-07-02-cover@4x-89c4e985809a1a211fda78f4d5acb3a0.png"><meta data-rh="true" property="article:published_time" content="2024-07-02T00:00:00.000Z"><meta data-rh="true" property="article:author" content="https://github.com/shuashuai"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins"><link data-rh="true" rel="alternate" href="https://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins" hreflang="en"><link data-rh="true" rel="alternate" href="https://answer.apache.org/zh-CN/blog/how-to-package-and-deploy-answer-plugins" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins" hreflang="x-default"><script data-rh="true">var _paq=window._paq=window._paq||[];_paq.push(["setDoNotTrack",!0]),_paq.push(["disableCookies"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){var a="https://analytics.apache.org/";_paq.push(["setTrackerUrl",a+"matomo.php"]),_paq.push(["setSiteId","75"]);var e=document,p=e.createElement("script"),t=e.getElementsByTagName("script")[0];p.async=!0,p.src=a+"matomo.js",t.parentNode.insertBefore(p,t)}()</script><link rel="search" type="application/opensearchdescription+xml" title="Apache Answer" href="/opensearch.xml"> |
| <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Answer RSS Feed"> |
| <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Answer Atom Feed"> |
| |
| |
| |
| <link rel="stylesheet" href="/fonts/fonts.css"><link rel="stylesheet" href="/assets/css/styles.6ce1d592.css"> |
| <script src="/assets/js/runtime~main.15e42951.js" defer="defer"></script> |
| <script src="/assets/js/main.546ee55a.js" defer="defer"></script> |
| </head> |
| <body class="navigation-with-keyboard"> |
| <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_D8pK" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbar--primary"><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/logo.svg" alt="Answer Logo" class="themedImage_Pn4p themedImage--light_PnYV"><img src="/img/logo.svg" alt="Answer Logo" class="themedImage_Pn4p themedImage--dark_eYgw"></div></a><a class="navbar__item navbar__link" href="/docs">Docs<!-- --></a><a class="navbar__item navbar__link" href="/plugins">Plugins<!-- --></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog">Blog<!-- --></a><a class="navbar__item navbar__link" href="/download">Download<!-- --></a><div class="navbar__item dropdown dropdown--hoverable"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/community/support">Community<!-- --></a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community/support">Support<!-- --></a></li><li><a href="https://meta.answer.dev" target="_blank" rel="noopener noreferrer" class="dropdown__link">Q&A Community<!-- --></a></li><li><a class="dropdown__link" href="/community/team">Team<!-- --></a></li><li><a class="dropdown__link" href="/community/security">Security<!-- --></a></li><li><a class="dropdown__link" href="/community/security-model">Security Model<!-- --></a></li><li><a class="dropdown__link" href="/community/contributing">Contributing<!-- --></a></li><li><a href="https://github.com/apache/answer/projects" target="_blank" rel="noopener noreferrer" class="dropdown__link">Roadmap<!-- --></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">ASF<!-- --></a><ul class="dropdown__menu"><li><a href="https://www.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link">Foundation<!-- --></a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License<!-- --></a></li><li><a href="https://www.apache.org/events/current-event.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events<!-- --></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship<!-- --></a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy<!-- --></a></li><li><a class="dropdown__link" href="/community/security">Security<!-- --></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks<!-- --></a></li></ul></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link bi bi-translate"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_DSK9"><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="/blog/how-to-package-and-deploy-answer-plugins" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English<!-- --></a></li><li><a href="/zh-CN/blog/how-to-package-and-deploy-answer-plugins" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh-CN">简体中文<!-- --></a></li></ul></div><a href="https://twitter.com/answerdev" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-twitter-x navbar-icon-link"></a><a href="https://discord.gg/a6PZZbfnFx" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-discord navbar-icon-link"></a><a href="https://github.com/apache/answer" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-github navbar-icon-link"></a><div class="searchBox_H2mL"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_eExm"><div class="container"><div class="justify-content-end mb-4 row"><div class="col-lg-8 col-md-12"><div class="px-0 px-lg-5 pt-5"><header><div class="d-flex align-items-center mb-3"><a class="me-2" href="/blog">Blog<!-- --></a><span class="me-2">/</span><a class="me-2" href="/blog/category/tutorials">Tutorials<!-- --></a></div><h1 class="mb-3"><a class="text-body" href="/blog/how-to-package-and-deploy-answer-plugins">How to Package and Deploy Answer Plugins</a></h1><div class="d-flex align-items-center text-secondary"><div class="me-3">Shuai</div><time class="me-3" datetime="2024-07-02T00:00:00.000Z">July 2, 2024</time><div>5 min read<!-- --></div></div></header></div></div><div class="col-lg-2 col-md-12"></div></div><div class="justify-content-end row"><div class="col-lg-8 col-md-12"><article class="px-0 px-lg-5 pb-5 mb-5" itemprop="blogPost" itemscope="" itemtype="http://schema.org/BlogPosting"><meta itemprop="image" content="https://answer.apache.org/2024-07-02-cover@4x.png"><div id="__blog-post-container" class="markdown" itemprop="articleBody"><div class="mb-4"><img decoding="async" loading="lazy" src="/assets/images/2024-07-02-cover@4x-89c4e985809a1a211fda78f4d5acb3a0.png" class="rounded img_RAU7" width="1280px" height="720px"></div><p>We’ve noticed that some users are struggling to package Answer plugins. It might be frustrating since the doc <!-- --><a href="https://answer.apache.org/docs/plugins/" target="_blank" rel="noopener noreferrer">using plugins</a> doesn’t contain successful packaging examples.<!-- --></p> |
| <!-- --><p>In this blog, we’ll guide you through the process of packing your Answer plugin with step-by-step tutorial.</p> |
| <!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="getting-started">Getting Started<!-- --><a href="#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started"></a></h2> |
| <!-- --><p>To get started, please make sure you have a development environment set up with the following: Node.js, pnpm, Docker, Go etc. Don’t forget to check the official documentation for <!-- --><a href="https://answer.apache.org/docs/development/" target="_blank" rel="noopener noreferrer">development guide</a>.<!-- --></p> |
| <!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="notice">Notice<!-- --><a href="#notice" class="hash-link" aria-label="Direct link to Notice" title="Direct link to Notice"></a></h2> |
| <!-- --><p><strong>Skip this section if you’re using the latest code.</strong></p> |
| <!-- --><p>In Answer 1.3.5, the plugin build process and some plugin commands have been adjusted. If you are using code from before 1.3.5, you need to change the basic information of some internal plugins. The plugins involved are:</p> |
| <!-- --><ol> |
| <!-- --><li>editor-chart</li> |
| <!-- --><li>editor-formula</li> |
| <!-- --><li>embed-basic (only available 1.3.5 and later)</li> |
| <!-- --></ol> |
| <!-- --><p>Find the <!-- --><a href="https://github.com/apache/answer-plugins/commit/e224fee9b8a0b936e143e852050d9345aa249201" target="_blank" rel="noopener noreferrer">commit ID</a> for the plugin you need to update. In its package.json files, the hyphens (-) in the plugin name with underscores (_). For instance: |
| <!-- --><img decoding="async" loading="lazy" alt="image.png" src="/assets/images/01-a64d897a78469334c4076cbb02d679cb.webp" width="750" height="495" class="img_RAU7"></p> |
| <!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="i-build-docker-images-with-plugins">I. Build Docker Images with Plugins<!-- --><a href="#i-build-docker-images-with-plugins" class="hash-link" aria-label="Direct link to I. Build Docker Images with Plugins" title="Direct link to I. Build Docker Images with Plugins"></a></h2> |
| <!-- --><p>There’re two ways to build Docker images with plugins:</p> |
| <!-- --><ol> |
| <!-- --><li>Answer Base Image</li> |
| <!-- --><li>Local Code</li> |
| <!-- --></ol> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="build-from-answer-base-image">Build from Answer Base Image<!-- --><a href="#build-from-answer-base-image" class="hash-link" aria-label="Direct link to Build from Answer Base Image" title="Direct link to Build from Answer Base Image"></a></h3> |
| <!-- --><p>If there’s no need to modify Answer's source code, you can build directly from official base images. Please check our <!-- --><a href="https://answer.apache.org/docs/plugins/#build-with-plugin-from-answer-base-image" target="_blank" rel="noopener noreferrer">docs</a> on building with plugin from answer base image.<!-- --></p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="build-docker-images-from-local-code">Build Docker Images From Local Code<!-- --><a href="#build-docker-images-from-local-code" class="hash-link" aria-label="Direct link to Build Docker Images From Local Code" title="Direct link to Build Docker Images From Local Code"></a></h3> |
| <!-- --><p>Please keep local code up-to-date. The steps are as below:</p> |
| <!-- --><ol> |
| <!-- --><li><strong>Add Pluins</strong>: Edit <!-- --><code>/script/plugin_list</code> (root directory) and add plugin repository URLs (one per line).<!-- --></li> |
| <!-- --><li><strong>Build Docker Image</strong>: Run command: <!-- --><code>docker build -t <image_name[:tag]> .</code> .<!-- --></li> |
| <!-- --><li><strong>Launch and Verify</strong>: Wait for build to finish, then run <!-- --><code>docker run -d -p 9080:80 -v answer-data:/data --name <container_name> <image_name></code>, then verify plugins in Answer.<!-- --></li> |
| <!-- --></ol> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="1add-required-plugins">1.Add Required Plugins<!-- --><a href="#1add-required-plugins" class="hash-link" aria-label="Direct link to 1.Add Required Plugins" title="Direct link to 1.Add Required Plugins"></a></h3> |
| <!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/connector-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/reviewer-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/captcha-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/editor-formula@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="2build-docker-image">2.Build Docker Image<!-- --><a href="#2build-docker-image" class="hash-link" aria-label="Direct link to 2.Build Docker Image" title="Direct link to 2.Build Docker Image"></a></h3> |
| <!-- --><p>The build process may take some time. |
| <!-- --><img decoding="async" loading="lazy" alt="docker build process" src="/assets/images/docker-build-b465cae38cd3b7c3435a342372c1012a.webp" width="927" height="512" class="img_RAU7"></p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="3local-start-up-and-verification">3.Local Start up and Verification<!-- --><a href="#3local-start-up-and-verification" class="hash-link" aria-label="Direct link to 3.Local Start up and Verification" title="Direct link to 3.Local Start up and Verification"></a></h3> |
| <!-- --><p>Run the following command to start locally and follow the <!-- --><a href="https://answer.apache.org/docs/installation#install-steps" target="_blank" rel="noopener noreferrer">documentation</a> to complete initialization.<!-- --></p> |
| <!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -d -p 9080:80 -v answer-data:/data --name answer101 answer-plugin</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <!-- --><p>After initialization, log in to the admin panel and see if the plugin runs correctly.</p> |
| <!-- --><p>Admin Panel |
| <!-- --><img decoding="async" loading="lazy" alt="installed plugins" src="/assets/images/installed-plugins-4c0a60416e307cf55d7e531785a40df0.webp" width="1525" height="592" class="img_RAU7"></p> |
| <!-- --><p>Activate the Plugin |
| <!-- --><img decoding="async" loading="lazy" alt="active a plugin" src="/assets/images/active-plugin-bca3326dfcac67fab831d5e56ae8a8b3.webp" width="1365" height="505" class="img_RAU7"></p> |
| <!-- --><p>Verify Plugin(editor-formula) Functionality: |
| <!-- --><img decoding="async" loading="lazy" alt="confirm formula plugin result" src="data:image/webp;base64,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" width="852" height="487" class="img_RAU7"></p> |
| <!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="ii-build-a-binary-with-plugins">II. Build a Binary with Plugins<!-- --><a href="#ii-build-a-binary-with-plugins" class="hash-link" aria-label="Direct link to II. Build a Binary with Plugins" title="Direct link to II. Build a Binary with Plugins"></a></h2> |
| <!-- --><p>Here, we will walk you through the process of building an Apache Answer binary that includes specific plugins. The process involves building the base binary, incorporating the required plugins, locally verifying the plugins, and finally deploying the binary.</p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="steps">Steps<!-- --><a href="#steps" class="hash-link" aria-label="Direct link to Steps" title="Direct link to Steps"></a></h3> |
| <!-- --><ol> |
| <!-- --><li>Build Base Binary</li> |
| <!-- --><li>Build Plugin Binary</li> |
| <!-- --><li>Verify</li> |
| <!-- --><li>Deploy</li> |
| <!-- --></ol> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="1build-base-binary">1.Build Base Binary<!-- --><a href="#1build-base-binary" class="hash-link" aria-label="Direct link to 1.Build Base Binary" title="Direct link to 1.Build Base Binary"></a></h3> |
| <!-- --><p>Start with building the front-end static resources using the command <!-- --><code>make ui</code>.<!-- --></p> |
| <!-- --><p>Output:</p> |
| <!-- --><ol> |
| <!-- --><li>Installing Dependencies |
| <!-- --><img decoding="async" loading="lazy" alt="install ui dependence" src="/assets/images/make-ui-01-8e6b732388f740e04c9c35bbfe4ab1ce.webp" width="1043" height="575" class="img_RAU7"></li> |
| <!-- --><li>Dependency InstallationBuilding Static Resources after Dependency Installation |
| <!-- --><img decoding="async" loading="lazy" alt="build ui static files" src="/assets/images/make-ui-02-c221e4d0fb7d28b482784f45d4b9f79e.webp" width="975" height="721" class="img_RAU7"></li> |
| <!-- --></ol> |
| <!-- --><p>To build the base binary, run <!-- --><code>make build</code>. If the build is successful, the answer binary will be generated in the project root directory.<!-- --></p> |
| <!-- --><p>If you encounter errors related to Go dependency installation, you can try running <!-- --><code>go mod download</code> locally to see if the installation is successful. If it still fails, consider configuring a domestic mirror: <!-- --><a href="https://goproxy.cn/" target="_blank" rel="noopener noreferrer">https://goproxy.cn/</a> or enabling a network proxy.<!-- --></p> |
| <!-- --><p>Success: |
| <!-- --><img decoding="async" loading="lazy" alt="build binary success" src="/assets/images/make-ui-03-afe3e3ea53679061f1d6af16f2b770cc.webp" width="1098" height="381" class="img_RAU7"></p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="2build-a-binary-file-with-the-required-plugins-using-the-base-binary-file">2.Build a Binary File with the Required Plugins Using the Base Binary File<!-- --><a href="#2build-a-binary-file-with-the-required-plugins-using-the-base-binary-file" class="hash-link" aria-label="Direct link to 2.Build a Binary File with the Required Plugins Using the Base Binary File" title="Direct link to 2.Build a Binary File with the Required Plugins Using the Base Binary File"></a></h3> |
| <!-- --><p>Please view <!-- --><a href="https://answer.apache.org/docs/plugins/#binary-build" target="_blank" rel="noopener noreferrer">Answer plugin docs</a>.<!-- --></p> |
| <!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain"># answer build --with [plugin@plugin_version=[replacement]] --output [file]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># build a new answer with github login plugin then output to ./new_answer.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github@1.0.0 --output ./new_answer</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># with multiple plugins</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--with github.com/apache/answer-plugins/connector-github \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--with github.com/apache/answer-plugins/connector-google</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># with local plugins</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github@1.0.0=/my-local-space</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># cross compilation. Build a linux-amd64 binary in macos</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># specify the answer version using ANSWER_MODULE environment variable</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ANSWER_MODULE=github.com/apache/answer@v1.2.0-RC1 ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <!-- --><p>You can choose the required plugins according to the instructions in the documentation. Compiling plugins will rebuild the front-end static resources. Plugins may have special dependencies, so dependency installation and compilation will be performed again here. After successful compilation, the <!-- --><code>new_answer</code> binary file will be generated in the dist directory.<!-- --></p> |
| <!-- --><p>Example: |
| <!-- --><img decoding="async" loading="lazy" alt="new answer binary" src="/assets/images/new-answer-b2c9fcfd56a69a0ab8b578772ccbf32a.webp" width="777" height="195" class="img_RAU7"></p> |
| <!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="21build-single-plugin">2.1.Build Single Plugin<!-- --><a href="#21build-single-plugin" class="hash-link" aria-label="Direct link to 2.1.Build Single Plugin" title="Direct link to 2.1.Build Single Plugin"></a></h4> |
| <!-- --><p><code>./answer build --with github.com/apache/answer-plugins/connector-github</code></p> |
| <!-- --><p>Effect: |
| <!-- --><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.1.1-a92eeb46ffa1ac4a66f98eedf7e23608.webp" width="1098" height="622" class="img_RAU7"></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.1.2-3e5b4a3321b59a9c68e265686ca8f3ce.webp" width="925" height="722" class="img_RAU7"></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.1.3-1a9e04459da6e4c32fdecd27a8d01c94.webp" width="1073" height="405" class="img_RAU7"></p> |
| <!-- --><p>Verify plugin installation command: <!-- --><code>./new_answer plugin</code>.<!-- --></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="confirm result" src="data:image/webp;base64,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" width="621" height="67" class="img_RAU7"></p> |
| <!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="22build-single-plugin-using-local-plugin-code">2.2.Build Single Plugin Using Local Plugin Code<!-- --><a href="#22build-single-plugin-using-local-plugin-code" class="hash-link" aria-label="Direct link to 2.2.Build Single Plugin Using Local Plugin Code" title="Direct link to 2.2.Build Single Plugin Using Local Plugin Code"></a></h4> |
| <!-- --><p>If you need to modify some plugin information or build a plugin using your own private implementation, you need to use the command <!-- --><code>with local plugins</code>. For example, the <!-- --><code>editor-formula</code> plugin mentioned above is compatible with Answer versions below 1.3.5, so you need to modify some plugin information. In this case, you can use the following command to build the plugin:<!-- --></p> |
| <!-- --><p><code>./answer build --with github.com/apache/answer-plugins/editor-formula@0.0.3=/Users/shuai/answer/plugins/editor-formula</code></p> |
| <!-- --><p>Output: |
| <!-- --><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.2.1-edf3d648874ff29768879aa9bcc92625.webp" width="1041" height="703" class="img_RAU7"></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.2.2-073d34759862f9bcbfbed4083aeb7677.webp" width="1017" height="702" class="img_RAU7"></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/assets/images/2.2.3-e4729e7ae3983429cf9795556c80d72e.webp" width="1066" height="421" class="img_RAU7"></p> |
| <!-- --><p>Verify plugin installation command: <!-- --><code>./new_answer plugin</code>.<!-- --></p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="confirm result" src="data:image/webp;base64,UklGRgIiAABXRUJQVlA4WAoAAAAgAAAA2QIASgAASUNDUAwCAAAAAAIMYXBwbAQAAABtbnRyUkdCIFhZWiAH6AAGABkADgAAACFhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGyLN56Wklwq04tCLngm2d3zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAADJjcHJ0AAABMAAAAFB3dHB0AAABgAAAABRyWFlaAAABlAAAABRnWFlaAAABqAAAABRiWFlaAAABvAAAABRyVFJDAAAB0AAAABBjaGFkAAAB4AAAACxiVFJDAAAB0AAAABBnVFJDAAAB0AAAABBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABYAAAAcAEQARQBMAEwAIABVADIAOQAxADcAVwAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAA0AAAAHABDAG8AcAB5AHIAaQBnAGgAdAAgAEEAcABwAGwAZQAgAEkAbgBjAC4ALAAgADIAMAAyADRYWVogAAAAAAAA9tYAAQAAAADTLVhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAAAAAAB9gRzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCDQHwAAkHUAnQEq2gJLAD6RPppJpaMiISpxjCiwEgljbt1D3f2DsvMU/P/ufpj2jt/xbrAvqA/L36/cAvzB/tv6pv+2/bX3I/3TpjvUI/tvqAftv6b/7r/BD/hf/N1AH//9uPpl+l/867Pv8d/Wv2/8/fEP6X9x/TR+UfGx5l+nf8z+veqH8f+xn6T+x/4T0d/wX9j8RfgJ/Y+oF6w/2f9l8fnYg6t/g/+j/ffYC9jPn3/P/s/+S/Xb2mvRf9R/dP7v+snwV+S/0//Y/134AP5P/U/+L+cPvx/u/BT+q/5j2CP5v/jv/H/m/dY/lv+z/ov9P+23tK/SP8d/5/8D/pPkK/nP9f/8H9//x3vpf//3NfuF////v8O37zojwgi17psHj6gKE0Xx1CGkA15VoFO42QsD25cky5PbRp+0JW8wVQ5H6PQqdaH1Gl5q8tMMYFL3hQe7d7VvisYaABGnjDWkUsAjIO8N/kmQFi3s4pu2juJ2ColwdDQ2YJWcqmP5E3enpPOzCgvmp+kESF1f66c3LL5ZvjHzIgVvqHSN/ktqqpkguISUZoHTq9z+tUXGPQ1hZnLHp3SajCf6GPrA72q2Mr5uL/K3JKJ5I2uKmZiE19AxSlxxjhzG2aktRvH2+RIkTZa38AE3vQN8ymsnoDYkZIWPYas6oWHAeqOLYN/ZNferPcVoZWngNIj3Xyk1Ub3nWrGdILIcRuP1SApWfJFhkYhznn3uOE1KOVVD7VmApMf3Kynl38dK0CupTg6UOCb+8zHD8m+47B07DT0EMrcXkfPkTEc5+07Q/JPz1t83a6AyFuOBeZjCX/59ktScwfCrC5meXx0c3X+7Ad7caXC57Er3C2xPx4WJ9xXVTKurnUdI1Vf7C3ugA1FAjt/RHIqYzN9CK3LEFHOQAueFN/szRdsqwfK5ybIp3qs2378k/jF+0P3tgdGyUuvoHVf8Tc9YJOip7RKJoO4yjduor9LufU9xxHgUiO6k1RAgO+pb24otbAc21bsUdo4OjcZ+rVwRkBVYEU+wDJHamZExDiA1g32RwDTOkmxz4AHb+6rzHQLLBqp4+2R4Uy/E7fU0r8R4Sc/014wRXDOmRkMfd/WaflcLctuGWm2zsvnwAHMPdDT/NFAybSxXGlBPIC/MORvQdMaoojQ2Ix4I3OVr8u2h++C7gngCDaKNuMKhcI5+2oOquDvfcP0p/LH+FCCPVuAAOz9O85dQ29IbKDRd1XAFTr3UaL30/TXEpbiXdE/Q0/zRQLdooJdgAAD++iFsW1Qg2FpbQUqIzDY8CBjiu80I4LGML5YadT/oHrkWfduYy/aYyMt55HK64FPdpLEu+O8p/hjHpXtm/O9xZno097Ojur69DU88urLvI+WMNRNu6ZmW4BSz1dMNjyGCsvFQ+RGIq+avg1khooEbzxYZnTbhnu3Bu4lW2zh90UTbUGGX3SwKIcHIvyzdcxbvBab+9rTYhMSx1DpMwnpvbqk6aU3o2QOq3ML8SuV3szI0Kk5lb4nMZFAU61modPOMNnzagGzr7GN/5kZQs6VfXQAU6L1mWz4h0ZrhNJ2O5uR03JvFgQGo9dH/w185dnSLs2iyde25W07oTiT2+oeXfWBjziqTKN3lF/Ahf6DDKzqaJz7jnn8urLu/Ltl5JzH9XpM5jETkQm1XwH0hRpCYGhIQ7TRdxp4FPS0zfy4mGgj44uwJfEd+4zvf99sDcian0FHRVL8JYIWT0WccNIfHpKFRYEwazW2kFDQMsSKp70sFLMg4CP31w5BgeeZrPq8lS+oFH+HhF2NxNYJGbP5aTy0t9Fq229VR907tXvUcZwb5dBRINXbe5CPBAyt+lbKgLjR9AqSdRa3LFk5OXremzxCYL75tlORyVORDTomofXwD/18MwDd5X2dAkAvriMfUBqA3k76BwTI8DoOJV63fZRYiGYct8lgWrKGlYicmf2KT1ou6Yqq+ZNdrE/W3dmYxv4u1OCxfu9GPUvuFmwbkrYciV1uLy2W3dDdGRNGEstqSpyCA2lWvukOi2jXy/xRJSNkT9yS94kv+ZtMuLshUktd+ovrdhoCKf0f280RWtVg2SqNkHZYwXhM7mIwO34b/4wTVdNTLiWKutSiOA+NUkgM3u+kURLo4P4FSdXorPgIF5pN4kRCyxePg1m/o2Alt4ydomy1p97auAakaLUxm0uiGCi6YKpJ/ZETwhGpxC2FS4gJyYghN4QdZRNYXtK8NYl1K1bH90O0soKjMU0yTmdiRRkl+/k8NBZFENxZkubOdihPzKWpDiD3Zhjfl2ULteWlsbj1FD00fexr/y5r+KR/13z9aMGFu/BoHMM7vkTUY4R6DhPK6VjfBHXGg+OuxXupzVG8+yMQK2+2yPq3q4q77sns/S2pgwhOmFdeX0IJmljt9x+9RxsXebT3mrvxGzps9K1GtD+QjRTXvVrXzFGphimgBFjGt548A5Brgves0Izqq1NwEHF06Q3XwDTCPogE5U3uR80EHfYU+Sk5Ua52bV4gtQ3XskTQ+Mbc+wq7yeYE2mClSO7kSO5uztpEy+YdmYDr4aLkoVEs8p8bs2qmeirjrLfBMA9RLZ0nJXzjqLH0YVC28vs2qp3xOSqX2AErfQ4iOBfwXN5iUiVDBEpnPjULO0iUFZBL6AkHvej1IzjAowtMZNH/PEMJ4G3i5p/2mjtvZOoQuMJwspX9jm4m3fOA557GyJcZV0l1ctqi9dG4WU4udTn1fcViMvIL08iVbeh21+UErbcVGEhl7mmdId4qTr6lEJiRhjvLS9eiq7ETYiTN44xCkMUn9iP2YH100lddm2VUb/Ce5lrsrYhkmcax3NVDYeBRS6efyLQ23tLm73k8dSUQbnXK1iMHq85J5Qbzl1XS6SFfvpww8yvR0CsoEiz1tFa/SwPViDMHH4GFPT/FUwwHr6O35tJ+cdvvsyX4fyunj+W2BJkJSf9LJm+V5NOeQWTynmuJNNjcIRp2WavGCCBdTWH+LHOJgaHkELxUQ64AnFZveiB/11iMNUd0snAOZKdaHr6gwyYs5ARHa+jP0LTGt+lPIzICgNmmVJpMlG4Sae1EDkgAId9ViE6Jr9IegkO+5JZsPbrnTUuZv/CJuBafG99El8YLT0IDMhK3TDVc8urivdfm0GEq6fw87OGUuwbNMqUTuImeMivTBjvHFLOnW5aj7XPEohhCJ5tPgnKlIzkz71ooYjT9GwXfuVrH9aA+lOCas1NVu/Cam2wHxfXbrS0OnZtUviKMa1m6y1bxARo4fKmtEDgF+YmXQMryGJXYRXH1aBkF+D7lw4a+867HtYaSEDNDzbrWRtnYgqOT6tYxTE1QBIh6tjBrnHFJZIe6HtKGwuK0stT6HFP+uyGMrTTURaWweBRN677EfA77IhrHjSyKgmmj4XP0kK/gnxOsTOW3hmNqmHJj41rSfQ27WXYtJFHyHL1iol9+MmiLsx9VfXQo0CwyGuXyQP40XVue8Oo4BlEnpIUMgmqM/e/dpkysLxsJpTnhSKy85rYar6a1nABhbYG0gy4caiszF4TSnPCkVl5zWw1X01rIx2p0fou5H8zGJW2jH4dt1MO+W/XtQWUJwiKNpA54EmamKzKyaQ9FkKOqAnU5ONZ4v5UjHqAcvzZNgRPBZsmdUrd9ImWUb6GG8PmvYKu56DcW19GDvK630Bmtnp6zFF1v7rEfBufAc+7Hyv7jCAVBIj3yM7uhCaEUBGIlgoFqgyo33LMmlNDs/xdejcftq9xIvc4BDYrHWmtMOEV/QGc81JJGqrzkrNhfXN0Ydh/dzxhhH0/4qaA8LEMja91guiGlz8y5Rzi9YeZk3ycehsGE9aFUpuVDL7NJOnUc6ezNeDjx2GGxVyM/ks8rcelY2fcVaOROPWJp1sDjgm4Li98JjJhlIYTvzMDqDrqfMRXt4ROdw1UsrupdrGLHvywV+TI/9YuG5+w7gZTe5jtZsECkAyzzwDhd9Pm8NODLhHO4bdfAZF46e2VQZcA/tAks7AQc5/8a4tdFf0BnPNOYAUw3w1HbttK0TKPBFn/ZadeAYgIbbhQfJwPVj4jecEFS+IhLonRfMweo4gb2famPib7C1/YltKvDoZdjaNEwOXQgXuEOH4s10TTrYCKV+Do3GcFe9VG5Cq+P14JgiU8IcaK7ONUro5EzybJQo/B07nGsLR+uUf90qYSz8HpAD1rmjra+R4Qz0vSqPVRW0/j1SBSAZZ537aIFdcaYPZwcLElMi4AhN+dkMHDqmRoP+e+fOFANaVwOG5l0zqMBJqiaV7RkSC9sWX+49DPyRbLFTeslq3n9g6z6PEuMPsjPyGeyqm9Vk9vEUm68OYKyajbgQXzVFrfUF9QJ5OmNd/KCZjxtS8rsJSxaphjKJipFOFEhkybRdspbOsBoJfCvPgTx/umcX+eJEryO4XQKTHxUQlliuBEQ84XfX/cmzAW1rtMXtBb21sjSKvO9K4xr3KSPm2DtbSRx4KgL4Wcpcp+/DKyBzL/4SbMYBgKBvTW7VPpgJOWNGXQBV4ZGkdvBnTz1ja5aMxbciVJGzcC/hOgacJONUlSVwfn8pMhWhtx5YC0ulL5yWA6CvcXfgKl/bb/aD0/lJ9etYKj6L8SwX9kAA/ZnTIAN2eugC1ZQu1x+rmZXGRcD+puRfWBzHx+l8OO0AZXDwlOrd8dorrlHHCaRvOF0f8fhhOuMBM6iM3/UFtXOlynlEMCSNB3YiXU3jzNe5IOneuedD5l+d4psnVhTWbJ2UYTdpbeqTJVV1+vsGMRN/dahU/3oh7zZ1RKg1VKAWWyFoPCuAktEzvPiIv+3sKoRgXk9Ird+hPxALZPxqdCUITf/BgFa2oS4I8Icq7VGnyGrsJ0kcEgSpOScxQ1I2JfFytCQmzkslaDRLYExK4OnemufI1P5b0UhU++j/Q4xJJSXKp6xcTHvfgmR7tx9Z+7tv+jSvToJ9eqSghvHF7KPmXP47vHfk7fMXGqYMNXXp2k6OJR0AJhLjdEsZ0rvlstVXnc9FnsuE0DIGXlClbGJaXe56NMNrb9UL619Db6HwPatGr2zwTD+9MaRu9ZceYvvyZYpNNubQxutz5SoVoMn5cu1kvYGbLhiv6pyXpbefSZOJwzH879OY1T0InyVGowsRoY8omYwejkS+p0cig/v9NpUtJJf1ynoj2VeAS4axS6YEasztjQS2OJ6l+ugR/voDkQQDlAq8O7II6BGpGKxR8L9PvHylgq4dlPu3d6MKOe/keg0GLb7XmdZ6AfU8P7vgqy04xvtz5eKAdz2p7ORKbYJwasP5k1LnER/e1pPbd3iGjhzf17kmHeeU6iBpJVJbXVSrzWycfF2HJfWRIqaIY7Wd9fVSQfFrWvDkQJvTfMYCY3jG+6yo7BQN7fjc1hQoQ3plz+jEvs4L8aRu9ZLyhSti4qRA0TRaLP8TCxvlq3d6MKOe/keg0GLb6FehJOSoVMZ7OwLYJSSJhvbf5HONbn3qkJyc7L1yvHszZMMIzI7biTsNTgitn0RUcvWwWd1P1VwMm0OkgTgorrzuO5AwyqxuXK84n4fZzxRp8HtS+woUIb0y59tyR935z8QA715NrktK9pHuNrl/dB4FKTRBGQBtTTsOt8EXpetPBdxQVHiZo1RlXTedE7i0+BmTnAUQZmDhTmVtZyrqHEUlI0dYx3jsEPM2nCBMEudqtxcKPmnVCfVTEFylcwgaaT5KG1Iu6DcVIwfGv9Gzq/12V9gBw9TchEWlSZ+HNpTbGSQb3oU9VjrI97ljN4g+PglxXkrsjUGJP3qrEpGGX4aOEQfLPzntSJnmmaTVWKf9hDJTrEDOW/1zK+biyA8agQZH9XXnUTrT6PyghEn3Ke+0UpscYjIqTlOUWIugTzn95xuVmpOHk9uMRGIfV2t3mMK0Od/syvm4tqisHUMGnv1QsmTKp8LasxJhu9LKFdrTV5yiDQWJwkoTgnSzZw3eo1Od6hQeMCslcrIlNvnx1xIEBYbxfg3t9Ksyl4ieEnQ5Z2yavM33J6Trw2bl+/tnkHLT38HS6XlJyAI27mC3AB93aAupNboiSVkz4Cf99qT5z5J1AHqu/1naQy0+/yUSEeAJHWyxsp0/BieFwQSApvOxbP3Nz0KmNl9gj+eKTDAyy65XIEPlb1ub/YpoIz1c4xxy2cfuX0uap75xdKJtxdfuun9jODMHhAmHqmTbcdY56ljOtZBTAO7XPfthWR7Q39mcm8ZSb3tovxD1kMs7HYRcLglfR6z+hZzagHQPjo6MVpxCWw+FZCsGXO7gEfEnI81NqD1oLGiIgkIMX743b0jcCF9WK082b6JjTS6thXv1DfOytcS3iTD0c0y6ELTDVwARJ5z0mWC2oHZk5zpAV0Fw3dm4wyjG8tk5aFwcUvaGuk1alKMMd9SXJwcrCkkl7wAONAWqK4S056mI1wCoMy2eOADQ6uk0uUkkj8OiMpBj7qSL4fKYO9vvoqMd8de2B1fmj7kgle7iE63frbjCt5ZL9bDQYEW022Toa/UTpm6sVs6Dk9nqWTGQW6z6ILlLewz/amaTMeIaNXn6g7CU/E0ExL7YY5Hgd0ioJP5ZIEgW8GPxEHFlWXv5+GJ4Jx/glLEjoZ0RayjTURMI9hXBSdCIAOgS+dmi1FRKHAiyZfo6saxB8jyOhx3DvzLESYV+wB0ser3NVHMgOPsjYHPoaY3GZkRl7nlqWjjsIizrZJVeTtF8/C10Z5qmZCBuAZ0WEiNNLGIOzact1JHR+QafW8BupteMylScbSlW59CJNkVbVaoL+rHq3noI0+zXj/zAyDF4Mme+ZvWoi0gwnDBz/AuoH63F+Bc3dlgau+LlbrQ/STiy0QBbsjrBvA9owl7OPudTd/edm7E1Cdz7hqQZQYcSOTaJYwRBkYnqm7/QByV0KRc3nkujcwGaCTZdotSxO3EbfO6+NulngcD/hfeEWZ4Qo26blXhvVBODmLVRlgXyQEfAqMc1PznAHvRTYrjG5LNKXxNM1SED9MgrheBHKUr1q8JWoc9YnF0Wlzmw3LoUe8qfCRnOcdhwuf0OlpO3qGjkS+7snZ2XvaSJgW676WTBm6CYYgJ106GayAfl7jPiVEc4TgRro3y6El21i0YpTcpQ0MByy0MnHzW9Ov7bpA9fFf1V+8zV0ZmOeU7JVsgBkEMgRIXSCGNzYs4DGn4OCoV1ftrziC1FozsitQSWBPm5xw85IoUuYqz+gaWnlWBg7hJREKUqftzkO+n7PIfC3DjJ9D7SkDBDl3pMLNcRG+euKsI9fcTEJtu/1Eg+9NU41irP+rhViDNpYSu5MLpMLNc7FtWdpkvmObC3QMU5SBfy7zL/st8K282diYDTT7fqOdrii0E5m2ACnjpqe2WLK7iRdkHKX2JbD8e9Bk2dJ3t5R+18hlq3q1vlj2gGXbeJ4qnyN3jheu24ViWZtA8DMWobjCNb9btsiVoxGOeEix4wxNKefKIiHHRTC3zDpCxZHhbD/8KrLL+brzmjEx9k/hcab9fCRpXYOlVkloqJFWoaqnNL6aTbBvFWlxk+Kq9THj65rJYDUyNxgLSdKHIXB1QsGv+TQZaFpB/32+nSaw/ILyMDuVvkUMGurBfSQ1ccbF6yvYu2zz/pbTA811aWsmeEix4wxNKefP7G11gSGfTjiDc5UMtL5Y/yaW+eXpMLNcRG+euKsUMlrMza2qfBXfxXsWQ4rCtRNIGS12M8uGlp5ViL52o/jgOslAWLmKwzxWSvXBxFOXEw05FC3IKw4uAUNv0r3AUF9EOrSwdihKhT77uct4IvnKgb1LQzlb0KZSys1NO59DjoBCSEFOL7g2o0BPHK944rCFXF9qDnjNQGKWD56lMj5uBcoBFmI8/8WkTcrvlIX+UUPp89G5c3ZR3pYj0o4wBbh3VJxmsRMDHu9qFpvjmDPojUfqTGtId8gqzqu5+IjBWgLuHmynFgg6JMMPggVDLEc/8yhFPn9PevNcxpRvmv/c6sanVrRfzQim0Mmznz6ofhwG4OBAcMxBzW6pdMtHylqa+MXgbdvVDvgiJ4GS9Nh9tj43PkUXFNG4MDM/wTcFQZAOfAR3rWO51off6e8YTvSXp8l0KG/1G4LC4n9ZbJmVEzpej/+kCq7YaJDSMS7Eh7y0BGabO6Tr2Svf9fIK0PFBPW4dd9kDjyNCcIFhR81Cof627yDJ54BEE+ur8GyYXc2j/MS07KRoesGajjZ2A1TYNfa2bX+AYja/EVXRTsG0B+f4ISnhwrFkbR2xD2gO2oQRF2m5ID/nr8zsEI+Fip2Z7xO9ciDiig3HmR1QYGslo6pWEcR5/oMQKMC7Hb6hpqxXqZkNezlccETtRJ/tKnIQ5cSWE6eFRlrnDk/rvJWf4pxTOM3/QX8pVjLqFKdhjsROkhEg1R5hJVlZy8p09QQAgo/GeHGjus0Dajxi/EJ7F2lR2iVu66bQSk2LrDoeQAKEo3m0k3m4Drw9l2tmB84fcQsHxmByLUn+WtKQguecSMUqZnAdDHPQZM0uRa8f0X2KLmTkaMO7rigjnuVKrzP5DeCIm0uYUzT8VEpes25mq5ga6EyGjW33jb3zZ3iRUxiuZ/kozRk0E/SfOCcoYEkf2ZPFiTZmofY2yaepbyzHSsNHJqRYteSJSuQb+yahwLLXhK7+KuKibJgKLBQCLonZna98PVoTmoZg/vzKT6Zf4C6q0zPeM54kE+NT94T1E1qPrC+zD8fH5cXvJ5xNXhBarO2scXe3MD+iC2aYejpvnnccXgGXtTfeeMt4BvhaIL9Y3G8LBW5wJNnSil83oM5IEAoz5m+9/5t+p2vUnFGg4DxTXeGcqWY3wFNiR7UdAPqTA3K5t03VZyOhSVUeBGTge1MzWLMQKSedUwbn6IEDLotqeXOf/0tYjeY1CfIrrBuxnaxEqxlqD6R6K7HBc+7RUb+SIk6M/iKM3VstMt2z0ezXH8SQWQW39pI4JJ1X4q3qnIt2SIE5cyd0CMeDL8fupzyeGtEI2M54LrvkGpDRSBDAsjDFPAoDzrm5Aqn17es7bo7fAxx3N1dtsICvJUjg8Uxlq0s++5gO6NNVuP6/7J4CcH3Vk1UHc3TRKMeBWZIYqmj6EvUTqAuiEAqvs1z92U/Cq+vDFfzVcHjTRmAfsjQoot/YQdlu+Vq/KU0ZrUgYz0f/z1hFfNZ0P4YlaTjji2GhNTs9zH62SMlDhNaZMevg3QZzUEm0rI0aTGFI9/MpdCE2FKP/NzgJ1amZRZR0A0Dteas5l86hAHIwomaB++tmQ1FUrHmaKL/a/MrY/LseOCcPPh38B6f7e48eX4GhDvXtdZ1iwnLAWIAQA9r8XyJpP1hOjmhw8CGOEpvqQhraqKvU3vOTndgrySXZXqnBYoOXlKKplTAdFDbEIUKXwlUCtqy9qMf5uV8wYD7qUPG8os1SL6wxgd9uGG6fdtLEpxVPaJr+VvybYkPgSq0YvtZ9PcpnNOAec0RjxMsNWCcqC0BLgeJHHxQvtjmJE+jX3AbKEdkBwENmtCs6hIGJ7FZ8r+uNink3kfs6HDv9PvAmpd+fMQ4T8gcxGxJkY08bSJMbk6OaHDwIY4bDoqAfeMEvCiUJy7fFzWsoSweDvnU4kslHFKBNmv2nn3r+qUkPiw0w3JVURqd5b0Wj0AAAAAAC5h5YGn7Fm00a+3ewPuwnFsQAb0lvfbry+UeuphUh9aDy4gonTEyZk25O2ShGVf2j7UDJeUbgtz7P44MQhxw06rDC06p17NReXHE/EFJQ7jn1FIoccaozYz4fmHAxRXPPNG0EUsXU+ZxeBTsBkJTYQSVyq28alBNkDhMiOzGYjfQoEMIftIOZ4Spq4KRynpdGlbsRqbSRDV2/1CrA1RTUY+aPlTxM2U5e7whLr0rqOz66TxeX89NC27BASOXAUwEmKVwpW70784k7hxPfHsslBGtDY4my8/MN6jr/mm5mFljZl2RSYOU55FRlf/mFC3LlscOV6nS97iqBVI6iqmzfqykBzGEux4WeKPsPq/Mfe1iLog/Ie7+2/oVwANQ3tTFv1I/U0DdH1i1ZWDQ23OQvuDJ56eWUM7aCkj4AajGCVliD7JU5kaoyul4ZN4hg/Hket+Emu2BAnrzQnlSaNCpivfuzHgwZwPLoJ5pb/rkLEXM7I+fjNBxZYPgcZVBVz/lwqEpKAqmvTlD0/VXu7ahC19pmUviAkjUVVe948hJ39B+EnPh0THz8SwbD9WOimylDQrpOtC/sJe5cK3H+isowboSnPUX3jNu5GUVuGjN9Fq7S279TcwtJUwJQx33KvMT8vjOMQhxvxJjOOTkmLNNqrfZZTF4lNoJIAZ/xBSUO24QhuoiyKODbonwdS7Uq3PL4qaID5IPeIhhwydpjC9h446JRRUJ9EhWuPtv2IEidwrOv0usVfE4D4tQQbMuyKNPQvXMek6OPhoGupnz6OREr59K0X8gH+gR3ZRGnc26SnEBEmMtqZ7HivibvqRT0X7OFNALvVHAKlkfYnhhq/QoKTsjgUk4mKh3U9Wf3s5ZGRlTJknaMfIxon2XnO5L/8iZQ4+fQhErhH+rroNyf8PmvYKu55HfVu3J77srxSMFvGHl9bjloT/ccpYJmJNuML/Lr15hVsqrQdobjMo5NHabXnqsTBePoRoof8MOsSUESAVVc74BPjfVHscEuSGOAL+PBuY46cCcIxu31RDRdlSacHQzsRbsO+9+t28Yrm317HOb+k7HKtWfEFoUs1bEg3w1WnzLJPbN/NtveGHOnPEJhO2WmaXYAsXC52mhboKqCM/y5B5FmcfSXqd0YESiynQrG/IWCP8CDrgi7GoACm6uRXX8lDwXjFgOzzX5xqI9TzCKt2T5hewwXxZQKAAAAA=" width="730" height="75" class="img_RAU7"></p> |
| <!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="23build-multiple-plugins">2.3.Build Multiple Plugins<!-- --><a href="#23build-multiple-plugins" class="hash-link" aria-label="Direct link to 2.3.Build Multiple Plugins" title="Direct link to 2.3.Build Multiple Plugins"></a></h4> |
| <!-- --><p>The process for building multiple plugins is similar to building a single plugin. Please kindly refer to building single plugin and try it yourself.</p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="3verify-plugins-locally">3.Verify Plugins Locally<!-- --><a href="#3verify-plugins-locally" class="hash-link" aria-label="Direct link to 3.Verify Plugins Locally" title="Direct link to 3.Verify Plugins Locally"></a></h3> |
| <!-- --><p>Using the command line only ensures that the plugins have been installed. To check if the plugins are running correctly, you can run the generated binary file locally. Please refer to the <!-- --><a href="https://answer.apache.org/docs/installation" target="_blank" rel="noopener noreferrer">installation documentation</a> for instructions on initializing the information. |
| <!-- --><img decoding="async" loading="lazy" alt="installation docs" src="/assets/images/installation-3018c6ed348aead2c16936d590ea0dfe.webp" width="1074" height="463" class="img_RAU7"></p> |
| <!-- --><p>Please pay attention that you need to run the new_answer binary, so replace ./answer with ./new_answer in the command line.</p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="4steps-for-local-verification">4.Steps for Local Verification<!-- --><a href="#4steps-for-local-verification" class="hash-link" aria-label="Direct link to 4.Steps for Local Verification" title="Direct link to 4.Steps for Local Verification"></a></h3> |
| <!-- --><ol> |
| <!-- --><li>Initialization Complete<!-- --><br> |
| <!-- -->For example: <!-- --><code>INSTALL_PORT=80 ./new_answer init -C ./answer-data</code></li> |
| <!-- --></ol> |
| <!-- --><p><img decoding="async" loading="lazy" alt="local init" src="/assets/images/local-init-03c0b3cc97a3e370b2e25e682487deb6.webp" width="740" height="120" class="img_RAU7"></p> |
| <!-- --><p>Access <!-- --><a href="http://localhost:80/install/" target="_blank" rel="noopener noreferrer">http://localhost:80/install/</a> and follow the <!-- --><a href="https://answer.apache.org/docs/installation#install-steps" target="_blank" rel="noopener noreferrer">instructions</a> to complete the initialization process.<!-- --></p> |
| <!-- --><ol start="2"> |
| <!-- --><li> |
| <!-- --><p>Update Information<!-- --><br> |
| <!-- -->Run the command <!-- --><code>./new_answer upgrade -C ./answer-data/</code></p> |
| <!-- --></li> |
| <!-- --><li> |
| <!-- --><p>Start the Local Website<!-- --><br> |
| <!-- -->Run <!-- --><code>./new_answer run -C ./answer-data/</code>, access <!-- --><code>http://localhost/</code>. Log in and go <!-- --><code>http://localhost/admin</code> to activate and verify the plugin.<!-- --></p> |
| <!-- --></li> |
| <!-- --></ol> |
| <!-- --><p>Here’s an example of editor-formula plugin.</p> |
| <!-- --><p><img decoding="async" loading="lazy" alt="installed formula" src="/assets/images/installed-formula-e681cb941d80742026a978df02adb08d.webp" width="1496" height="413" class="img_RAU7"> |
| <!-- --><img decoding="async" loading="lazy" alt="image.png" src="data:image/webp;base64,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" width="852" height="487" class="img_RAU7"></p> |
| <!-- --><p>At this point, you can make sure that the plugin has been built correctly and running.</p> |
| <!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="5deploy-the-binary">5.Deploy the Binary<!-- --><a href="#5deploy-the-binary" class="hash-link" aria-label="Direct link to 5.Deploy the Binary" title="Direct link to 5.Deploy the Binary"></a></h3> |
| <!-- --><p>If your website is deployed using a binary, you can now deploy the generated binary file. If you need to adapt to different platforms, you can use the cross-compilation commands in the documentation to build the binary file.</p></div><div class="mt-3"><div class="d-flex align-items-center text-secondary"><span>Share to<!-- --></span><button aria-label="twitter" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-twitter" style="font-size:16px"></i></button><button title="How to Package and Deploy Answer Plugins" aria-label="facebook" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-facebook" style="font-size:16px"></i></button><button aria-label="linkedin" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-linkedin" style="font-size:16px"></i></button></div><div class="mt-4"><a href="https://github.com/apache/answer-website/edit/main/blog/how-to-package-and-deploy-answer-plugins/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_N_05" 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></article></div><div class="col-lg-2 col-md-12"><div class="tableOfContents_PDf4 thin-scrollbar"><ul class="border-0 p-0 table-of-contents table-of-contents__left-border"><li class="m-0 mb-2"><a href="#getting-started" class="fs-14 text-secondary table-of-contents__link toc-highlight">Getting Started</a></li><li class="m-0 mb-2"><a href="#notice" class="fs-14 text-secondary table-of-contents__link toc-highlight">Notice</a></li><li class="m-0 mb-2"><a href="#i-build-docker-images-with-plugins" class="fs-14 text-secondary table-of-contents__link toc-highlight">I. Build Docker Images with Plugins</a><ul class="border-0 p-0 ps-3 mt-2"><li class="m-0 mb-2"><a href="#build-from-answer-base-image" class="fs-14 text-secondary table-of-contents__link toc-highlight">Build from Answer Base Image</a></li><li class="m-0 mb-2"><a href="#build-docker-images-from-local-code" class="fs-14 text-secondary table-of-contents__link toc-highlight">Build Docker Images From Local Code</a></li><li class="m-0 mb-2"><a href="#1add-required-plugins" class="fs-14 text-secondary table-of-contents__link toc-highlight">1.Add Required Plugins</a></li><li class="m-0 mb-2"><a href="#2build-docker-image" class="fs-14 text-secondary table-of-contents__link toc-highlight">2.Build Docker Image</a></li><li class="m-0 mb-2"><a href="#3local-start-up-and-verification" class="fs-14 text-secondary table-of-contents__link toc-highlight">3.Local Start up and Verification</a></li></ul></li><li class="m-0 mb-2"><a href="#ii-build-a-binary-with-plugins" class="fs-14 text-secondary table-of-contents__link toc-highlight">II. Build a Binary with Plugins</a><ul class="border-0 p-0 ps-3 mt-2"><li class="m-0 mb-2"><a href="#steps" class="fs-14 text-secondary table-of-contents__link toc-highlight">Steps</a></li><li class="m-0 mb-2"><a href="#1build-base-binary" class="fs-14 text-secondary table-of-contents__link toc-highlight">1.Build Base Binary</a></li><li class="m-0 mb-2"><a href="#2build-a-binary-file-with-the-required-plugins-using-the-base-binary-file" class="fs-14 text-secondary table-of-contents__link toc-highlight">2.Build a Binary File with the Required Plugins Using the Base Binary File</a></li><li class="m-0 mb-2"><a href="#3verify-plugins-locally" class="fs-14 text-secondary table-of-contents__link toc-highlight">3.Verify Plugins Locally</a></li><li class="m-0 mb-2"><a href="#4steps-for-local-verification" class="fs-14 text-secondary table-of-contents__link toc-highlight">4.Steps for Local Verification</a></li><li class="m-0 mb-2"><a href="#5deploy-the-binary" class="fs-14 text-secondary table-of-contents__link toc-highlight">5.Deploy the Binary</a></li></ul></li></ul></div></div></div></div></div><footer class="footer"><div class="container py-3"><div class="d-flex justify-content-between flex-wrap text-center"><div><div class="mb-3"><a href="https://www.apache.org/" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 103.8" width="180" role="img"><path d="M255.178 30.45a2.7 2.7 0 0 1 .822 1.983 2.77 2.77 0 0 1-.822 2c-.55.567-1.214.83-1.997.83s-1.444-.273-2-.822a2.72 2.72 0 0 1-.815-1.983 2.77 2.77 0 0 1 .822-2c.55-.567 1.2-.83 2-.83a2.71 2.71 0 0 1 1.99.823zm-.237 3.74a2.43 2.43 0 0 0 .718-1.75 2.4 2.4 0 0 0-.711-1.742 2.36 2.36 0 0 0-1.746-.722 2.34 2.34 0 0 0-1.75.726 2.39 2.39 0 0 0-.715 1.75c0 .683.237 1.264.708 1.746a2.34 2.34 0 0 0 1.742.722c.7 0 1.27-.244 1.753-.73zm-.395-2.292c0 .503-.22.82-.66.948l.808 1.095h-.654l-.73-1.016h-.668v1.016h-.528V30.9h1.142c.46 0 .8.08 1 .237s.298.4.298.758zm-.68.427c.108-.086.158-.233.158-.43s-.054-.338-.162-.417-.302-.115-.575-.115h-.647v1.095h.63c.3 0 .492-.047.596-.133zM64.78 17.952v5.58h-.718v-5.58h-2.04v-.7h4.8v.7h-2.05zm10.006 5.58V20.77h-3.778v2.762H70.3v-6.275h.718v2.834h3.778v-2.834h.718v6.275h-.718zm5.718-5.58v2.062h3.164v.7h-3.164v2.148h3.656v.682h-4.375V17.27h4.26v.7h-3.54z" fill="#6d6e71"></path><path d="m56.55 66.532 14.988-35.83h2.877l14.988 35.83h-3.786L80.974 55.33H64.876l-4.594 11.202H56.55zM73.004 34.84l-7.367 17.714h14.535l-7.17-17.714zm20.268 31.692v-35.83h14.837c6.156 0 10.6 5.704 10.6 11.253 0 5.854-4.138 11.353-10.294 11.353h-11.66v13.22H93.27zm3.484-16.353H108.2c4.238 0 6.964-3.886 6.964-8.225 0-4.493-3.33-8.124-7.266-8.124H96.756v16.35zm20 16.353 14.988-35.83h2.877l14.988 35.83h-3.786L141.17 55.33h-16.098l-4.594 11.202h-3.732zM133.2 34.84l-7.367 17.714h14.535L133.2 34.84zm33.357-4.343c6.357 0 11 3.23 13.22 7.823l-2.827 1.717c-2.27-4.745-6.713-6.357-10.6-6.357-8.58 0-13.27 7.672-13.27 14.888 0 7.923 5.804 15.1 13.422 15.1 4.037 0 8.782-2.018 11.052-6.663l2.927 1.512c-2.32 5.348-8.68 8.326-14.18 8.326-9.84 0-16.755-9.385-16.755-18.468.004-8.627 6.2-17.865 17-17.865zm47.115.205v35.83h-3.534V49.777h-21.245v16.755h-3.48v-35.83h3.48V46.65h21.245V30.702h3.534zM245.836 63.4v3.128h-24.07V30.702h23.62v3.128H225.25v12.92h17.563v2.977H225.25v13.677h20.587z" fill="#d22128"></path><path d="M59.895 74.118c.424.126.797.298 1.113.5l-.37.812c-.323-.215-.668-.374-1.038-.48s-.718-.158-1.05-.158c-.488 0-.88.086-1.17.262s-.438.424-.438.743c0 .273.083.503.244.682a1.65 1.65 0 0 0 .61.42c.244.1.578.215 1.006.345l1.246.463a2.14 2.14 0 0 1 .808.639c.223.28.334.654.334 1.113 0 .42-.115.783-.34 1.1s-.55.557-.963.73-.894.26-1.437.26a4.13 4.13 0 0 1-1.577-.312 4.47 4.47 0 0 1-1.315-.84l.384-.776a3.72 3.72 0 0 0 1.196.787c.453.187.9.28 1.322.28.55 0 .98-.108 1.297-.32s.474-.5.474-.858c0-.28-.083-.514-.248-.697s-.37-.323-.614-.427a11.49 11.49 0 0 0-1.006-.345 10.77 10.77 0 0 1-1.243-.438 2.06 2.06 0 0 1-.808-.629c-.22-.277-.33-.643-.33-1.1a1.69 1.69 0 0 1 .323-1.027c.216-.294.524-.524.92-.686s.855-.244 1.372-.244c.442 0 .87.068 1.297.194zm11.225.332c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.715 0 1.376.165 1.983.507zm-3.527.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.07 3.07 0 0 0-1.544.402zm10.94-.372v2.658h3.534v.833h-3.534v3.24h-.866V73.96h4.806v.833h-3.94zm10.968 0v6.73h-.866v-6.73h-2.457v-.833h5.797v.833H89.5zm13.645 6.73-2.04-6.372-2.07 6.372h-.88l-2.532-7.564h.93l2.08 6.562 2.05-6.55.866-.01 2.072 6.562 2.05-6.562h.898l-2.536 7.564h-.9zm7.74-1.9-.844 1.9h-.92l3.4-7.564h.898l3.38 7.564h-.937l-.844-1.9h-4.123zm2.054-4.67-1.684 3.836h3.4l-1.706-3.836zm11.36 4.17-.506.022h-2v2.4h-.862V73.96h2.873c.94 0 1.674.223 2.198.664s.783 1.07.783 1.88c0 .618-.147 1.14-.438 1.555s-.7.718-1.257.898l1.767 2.568h-.98l-1.566-2.4zm1.085-1.26c.37-.302.557-.747.557-1.33 0-.57-.187-1.002-.557-1.293s-.902-.438-1.6-.438h-2v3.513h2c.7 0 1.22-.15 1.6-.453zm7.077-3.06v2.485h3.814v.833h-3.814v2.6h4.4v.823h-5.276V73.96h5.132v.833h-4.267zm16.485-.01v2.658h3.534v.833h-3.534v3.24h-.866V73.96h4.806v.833h-3.94zm13.515-.343c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.718 0 1.38.165 1.983.507zm-3.523.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.05 3.05 0 0 0-1.544.402zm15.426 5.565c-.564.557-1.34.837-2.327.837-.995 0-1.774-.28-2.338-.837s-.848-1.33-.848-2.32v-4.454h.866V78.4c0 .73.208 1.297.62 1.706s.98.614 1.7.614 1.286-.205 1.692-.6.6-.977.6-1.713v-4.454h.866v4.454c.004.995-.277 1.767-.84 2.324zm11.305.794-4.536-6.074v6.074h-.866V73.96h.898l4.536 6.08v-6.08h.855v7.564h-.887zm11.096-7.064c.6.334 1.056.787 1.397 1.36a3.7 3.7 0 0 1 .514 1.922c0 .704-.172 1.35-.514 1.925a3.67 3.67 0 0 1-1.412 1.36c-.6.33-1.264.496-1.993.496h-3.028V73.96h3.06c.73 0 1.386.165 1.975.5zm-4.17 6.242h2.205c.557 0 1.063-.126 1.52-.38s.82-.607 1.085-1.06.4-.952.4-1.508a2.86 2.86 0 0 0-.406-1.505c-.27-.45-.636-.8-1.1-1.063a3.07 3.07 0 0 0-1.53-.391h-2.173v5.908zm11.002-1.1-.844 1.9h-.92l3.4-7.564h.898l3.38 7.564h-.934l-.844-1.9h-4.127zm2.054-4.67-1.684 3.836h3.4l-1.706-3.836zm9.525-.15v6.73h-.862v-6.73h-2.457v-.833h5.797v.833h-2.478zm6.64 6.73V73.96h.866v7.564h-.866zm11.415-7.062c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.718 0 1.38.165 1.983.507zm-3.523.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.06 3.06 0 0 0-1.544.402zm15.476 6.36-4.536-6.074v6.074h-.866V73.96h.898l4.536 6.08v-6.08h.855v7.564h-.887z" fill="#6d6e71"></path><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="39.134" y1="8.805" x2="60.867" y2="2.762"><stop offset="0" stop-color="#f69923"></stop><stop offset="0.312" stop-color="#f79a23"></stop><stop offset="0.838" stop-color="#e97826"></stop></linearGradient><path d="M44.18.492c-1.627.963-4.332 3.68-7.56 7.625l2.967 5.6c2.083-2.977 4.2-5.657 6.332-7.945l.25-.27-.25.27c-.7.76-2.784 3.204-5.944 8.06 3.042-.15 7.72-.776 11.533-1.426 1.135-6.357-1.113-9.267-1.113-9.267S47.532-1.487 44.18.492z" fill="url(#a)"></path><g fill="#be202e"><path d="m34.214 47.518-1.167.205.6-.093.578-.115z"></path><path d="m34.214 47.518-1.167.205.6-.093.578-.115z" opacity="0.35"></path><path d="m35.2 42.623.18-.03.743-.133-.923.158z"></path><path d="m35.2 42.623.18-.03.743-.133-.923.158z" opacity="0.35"></path></g><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-8.437" y1="106.346" x2="35.767" y2="11.546"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m30.838 28.184 2.737-4.935 2.906-4.838.172-.277 2.93-4.414-2.967-5.603-.675.833-2.654 3.43-3.153 4.37-3 4.443-2.658 4.195 3.86 7.625 2.5-4.83z" fill="url(#b)"></path><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="6.407" y1="99.336" x2="32.749" y2="42.845"><stop offset="0" stop-color="#282662"></stop><stop offset="0.095" stop-color="#662e8d"></stop><stop offset="0.788" stop-color="#9f2064"></stop><stop offset="0.949" stop-color="#cd2032"></stop></linearGradient><path d="m13.253 71.15-1.782 4.978-1.34 3.886c1.14.52 2.05 1.886 2.913 3.434a6.23 6.23 0 0 0-2.02-4.278c5.607.25 10.437-1.164 12.934-5.265a10.68 10.68 0 0 0 .611-1.156c-1.135 1.44-2.543 2.05-5.2 1.904-.007 0-.01 0-.018.01.007 0 .01 0 .018-.01 3.9-1.746 5.858-3.423 7.586-6.2a28.98 28.98 0 0 0 1.214-2.177c-3.408 3.502-7.363 4.5-11.526 3.743l-3.12.34c-.086.262-.183.524-.28.8z" fill="url(#c)"></path><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="-6.838" y1="100.61" x2="37.367" y2="5.81"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m14.7 64.158 2.083-5.287 2.1-5.143 2.198-5.18 2.33-5.262 2.392-5.147.884-1.832 1.548-3.132.086-.165-3.86-7.625-.2.3L21.6 30.2 19 34.93l-2.105 4.1-.406.833-2.288 5-2.065 5.212-1.08 3.14-.772 2.58-1.48 6.045 3.875 7.665 1.58-4.166.453-1.178z" fill="url(#d)"></path><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="-2.331" y1="94.294" x2="20.9" y2="44.474"><stop offset="0" stop-color="#282662"></stop><stop offset="0.095" stop-color="#662e8d"></stop><stop offset="0.788" stop-color="#9f2064"></stop><stop offset="0.949" stop-color="#cd2032"></stop></linearGradient><path d="M8.746 62.115a58.935 58.935 0 0 0-1.006 7.32l-.018.255c-1.2-1.94-4.454-3.836-4.446-3.814 2.32 3.365 4.084 6.706 4.342 9.985-1.243.255-2.945-.115-4.913-.837 2.05 1.886 3.592 2.406 4.2 2.546-1.895.118-3.845 1.4-5.82 2.902 2.9-1.178 5.226-1.645 6.9-1.268C5.32 86.7 2.66 95 0 103.8c.815-.24 1.3-.787 1.577-1.53.474-1.595 3.62-12.054 8.548-25.795l.542-1.512 1.62-4.414.384-1.027.007-.022-3.875-7.66-.057.273z" fill="url(#e)"></path><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="2.974" y1="105.185" x2="47.178" y2="10.385"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m28.935 33.654-.334.686-1.016 2.112-1.124 2.388-.575 1.243-1.756 3.9-2.227 5.13-2.187 5.255-2.13 5.326-1.94 5.032-2.1 5.645 3.12-.34L16.48 70c3.732-.467 8.695-3.254 11.903-6.698 1.476-1.588 2.82-3.46 4.06-5.65.923-1.63 1.8-3.44 2.615-5.44a78.984 78.984 0 0 0 2.083-5.696c-.858.453-1.84.783-2.924 1.013l-.578.1a14.35 14.35 0 0 1-.596.093c3.488-1.34 5.682-3.922 7.277-7.1-.916.625-2.403 1.44-4.188 1.835a9.65 9.65 0 0 1-.743.133l-.187.03h.007c1.207-.507 2.227-1.07 3.1-1.738.2-.144.374-.3.55-.442a10.67 10.67 0 0 0 .772-.736 10.25 10.25 0 0 0 .456-.51c.345-.413.672-.858.973-1.34a13.71 13.71 0 0 0 .273-.453l.334-.657a37.57 37.57 0 0 0 1.185-2.615c.154-.38.3-.736.406-1.067l.133-.38c.122-.366.223-.693.302-.98.12-.43.2-.772.23-1.02-.12.093-.255.187-.406.277-1.052.628-2.855 1.2-4.306 1.465l2.866-.316-2.866.316c-.022 0-.043.01-.065.01l-.438.072c.025-.01.05-.025.075-.036l-9.805 1.074a.405.405 0 0 1-.05.1z" fill="url(#f)"></path><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="-0.255" y1="110.838" x2="43.949" y2="16.039"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m39.972 13.832-2.852 4.58-.162.273-2.812 4.92-2.67 4.992-2.493 4.95 9.805-1.074c2.855-1.315 4.134-2.503 5.373-4.224l.988-1.483 2.877-5.025 2.18-4.795.866-2.597.427-1.943c-3.807.65-8.487 1.275-11.53 1.426z" fill="url(#g)"></path><g fill="#be202e"><path d="m33.636 47.63-.596.093.596-.093z"></path><path d="m33.636 47.63-.596.093.596-.093z" opacity="0.35"></path></g><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="5.892" y1="106.546" x2="50.096" y2="11.746"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m33.636 47.63-.596.093.596-.093z" fill="url(#h)"></path><g fill="#be202e"><path d="m35.198 42.626.187-.03-.187.03z"></path><path d="m35.198 42.626.187-.03-.187.03z" opacity="0.35"></path></g><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="5.558" y1="106.39" x2="49.762" y2="11.59"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m35.198 42.626.187-.03-.187.03z" fill="url(#i)"></path><g fill="#be202e"><path d="M35.206 42.623z"></path><path d="M35.206 42.623z" opacity="0.35"></path></g><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="30.325" y1="53.101" x2="40.095" y2="32.148"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="M35.206 42.623z" fill="url(#j)"></path></svg></a></div><div class="fs-14"><div class="my-3"><span>Copyright © 2023 - <!-- -->2025<!-- --> The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<!-- --></span><br><span>Apache, Apache Answer, the feather logo and the Apache Answer logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.</span></div><span>Feature icons by <!-- --> <!-- --><a href="https://www.flaticon.com" class="link-secondary" target="_blank">Freepik</a>.<!-- --></span></div></div></div></div></footer></div> |
| </body> |
| </html> |