<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.2:scm at 2023-06-09

 | Rendered using Apache Maven Default Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>shardingsphere-sql-translator-api &#x2013; Source Code Management</title>
    <link rel="stylesheet" href="./css/maven-base.css" />
    <link rel="stylesheet" href="./css/maven-theme.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
  </head>
  <body class="composite">
    <div id="banner">
<div id="bannerLeft">shardingsphere-sql-translator-api
</div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
      <div class="xleft">
        <span id="publishDate">Last Published: 2023-06-09</span>
           | <span id="projectVersion">Version: 5.3.3-SNAPSHOT</span>
      </div>
      <div class="xright"><a href="./" title="shardingsphere-sql-translator-api">shardingsphere-sql-translator-api</a>      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
       <h5>Parent Project</h5>
    <ul>
     <li class="none"><a href="../index.html" title="shardingsphere-sql-translator">shardingsphere-sql-translator</a></li>
    </ul>
       <h5>Project Documentation</h5>
    <ul>
     <li class="expanded"><a href="project-info.html" title="Project Information">Project Information</a>
      <ul>
       <li class="none"><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
       <li class="none"><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
       <li class="none"><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
       <li class="none"><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
       <li class="none"><a href="index.html" title="About">About</a></li>
       <li class="none"><a href="licenses.html" title="Licenses">Licenses</a></li>
       <li class="none"><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
       <li class="none"><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
       <li class="none"><a href="plugins.html" title="Plugins">Plugins</a></li>
       <li class="none"><strong>Source Code Management</strong></li>
       <li class="none"><a href="summary.html" title="Summary">Summary</a></li>
      </ul></li>
     <li class="collapsed"><a href="project-reports.html" title="Project Reports">Project Reports</a></li>
    </ul>
      <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
      </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<section>
<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
<p>This project uses <a class="externalLink" href="https://git-scm.com/">Git</a> to manage its source code. Instructions on Git use can be found at <a class="externalLink" href="https://git-scm.com/documentation">https://git-scm.com/documentation</a>.</p></section><section>
<h2><a name="Web_Browser_Access"></a>Web Browser Access</h2><a name="Web_Browser_Access"></a>
<p>The following is a link to a browsable version of the source repository:</p>
<div>
<pre><a class="externalLink" href="https://github.com/apache/shardingsphere.git/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-api">https://github.com/apache/shardingsphere.git/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-api</a></pre></div></section><section>
<h2><a name="Anonymous_Access"></a>Anonymous Access</h2><a name="Anonymous_Access"></a>
<p>The source can be checked out anonymously from Git with this command (See <a class="externalLink" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>):</p>
<div>
<pre>$ git clone https://github.com/apache/shardingsphere.git</pre></div></section><section>
<h2><a name="Developer_Access"></a>Developer Access</h2><a name="Developer_Access"></a>
<p>Only project developers can access the Git tree via this method (See <a class="externalLink" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>).</p>
<div>
<pre>$ git clone https://github.com/apache/shardingsphere.git</pre></div></section><section>
<h2><a name="Access_from_Behind_a_Firewall"></a>Access from Behind a Firewall</h2><a name="Access_from_Behind_a_Firewall"></a>
<p>Refer to the documentation of the SCM used for more information about access behind a firewall.</p></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        Copyright &#169;      2023<a href="https://www.apache.org/">The Apache Software Foundation</a>.
.      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
