• 如何向开源项目(ApacheInLong)提交代码


    Apache InLong(应龙)是一个一站式海量数据集成框架,
    提供自动、安全、可靠和高性能的数据传输能力,同时支持批和流,方便业务构建基于流式的数据分析、建模和应用。

    1 - 认领或提交 ISSUE

    ISSUE,就是 Bug 或特性的说明,开源项目中的所有代码,都必须要有相关的 ISSUE 说明。

    如果你在查看文档、编译代码,或使用部署好的 InLong 平台的时候,遇到错误或你觉得可以优化的地方,欢迎在这里提交 ISSUE:

    提交 ISSUE

    ISSUE 标题的命名规范,请务必参考:https://github.com/apache/incubator-inlong/discussions/3605

    2 - clone 代码,本地编译安装

    clone 代码,初始化环境,请参考官网的步骤:贡献代码

    编译代码,需要配置 Maven 以访问中心仓库,配置链接:Maven configuration

    编译代码时,必须使用 install 参数,否则部分依赖的模块会找不到依赖,具体命令如下:

     mvn clean install -s /your_dir/apache-maven-3.6.3/conf/settings-public.xml
    

    3 - 代码格式设置(必须)

    请保存下面的配置到本地(保存为 xml 文件):

    =====点这里展开代码=====
    <code_scheme name="InLong-CodeStyle" version="173">
        <option name="OTHER_INDENT_OPTIONS">
            <value>
                <option name="INDENT_SIZE" value="4"/>
                <option name="CONTINUATION_INDENT_SIZE" value="8"/>
                <option name="TAB_SIZE" value="4"/>
                <option name="USE_TAB_CHARACTER" value="false"/>
                <option name="SMART_TABS" value="false"/>
                <option name="LABEL_INDENT_SIZE" value="0"/>
                <option name="LABEL_INDENT_ABSOLUTE" value="false"/>
                <option name="USE_RELATIVE_INDENTS" value="false"/>
            </value>
        </option>
        <option name="FORMATTER_TAGS_ENABLED" value="true"/>
        <JSCodeStyleSettings version="0">
            <option name="INDENT_CHAINED_CALLS" value="false"/>
        </JSCodeStyleSettings>
        <JavaCodeStyleSettings>
            <option name="INSERT_INNER_CLASS_IMPORTS" value="true"/>
            <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999"/>
            <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999"/>
            <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
                <value/>
            </option>
            <option name="JD_ALIGN_PARAM_COMMENTS" value="false"/>
            <option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false"/>
            <option name="JD_P_AT_EMPTY_LINES" value="false"/>
            <option name="JD_PRESERVE_LINE_FEEDS" value="true"/>
            <option name="JD_INDENT_ON_CONTINUATION" value="true"/>
        </JavaCodeStyleSettings>
        <Python>
            <option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true"/>
        </Python>
        <ScalaCodeStyleSettings>
            <option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true"/>
        </ScalaCodeStyleSettings>
        <TypeScriptCodeStyleSettings version="0">
            <option name="INDENT_CHAINED_CALLS" value="false"/>
        </TypeScriptCodeStyleSettings>
        <XML>
            <option name="XML_ALIGN_ATTRIBUTES" value="false"/>
        </XML>
        <codeStyleSettings language="CSS">
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="ECMA Script Level 4">
            <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
            <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
            <option name="ALIGN_MULTILINE_FOR" value="false"/>
            <option name="CALL_PARAMETERS_WRAP" value="1"/>
            <option name="METHOD_PARAMETERS_WRAP" value="1"/>
            <option name="EXTENDS_LIST_WRAP" value="1"/>
            <option name="BINARY_OPERATION_WRAP" value="1"/>
            <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
            <option name="TERNARY_OPERATION_WRAP" value="1"/>
            <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
            <option name="FOR_STATEMENT_WRAP" value="1"/>
            <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
            <option name="IF_BRACE_FORCE" value="3"/>
            <option name="DOWHILE_BRACE_FORCE" value="3"/>
            <option name="WHILE_BRACE_FORCE" value="3"/>
            <option name="FOR_BRACE_FORCE" value="3"/>
        </codeStyleSettings>
        <codeStyleSettings language="HTML">
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="JAVA">
            <option name="RIGHT_MARGIN" value="120"/>
            <option name="LINE_COMMENT_AT_FIRST_COLUMN" value="false"/>
            <option name="BLOCK_COMMENT_AT_FIRST_COLUMN" value="false"/>
            <option name="LINE_COMMENT_ADD_SPACE" value="true"/>
            <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false"/>
            <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
            <option name="BLANK_LINES_BEFORE_PACKAGE" value="1"/>
            <option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1"/>
            <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
            <option name="ALIGN_MULTILINE_RESOURCES" value="false"/>
            <option name="ALIGN_MULTILINE_FOR" value="false"/>
            <option name="CALL_PARAMETERS_WRAP" value="1"/>
            <option name="METHOD_PARAMETERS_WRAP" value="1"/>
            <option name="EXTENDS_LIST_WRAP" value="1"/>
            <option name="THROWS_KEYWORD_WRAP" value="1"/>
            <option name="METHOD_CALL_CHAIN_WRAP" value="1"/>
            <option name="BINARY_OPERATION_WRAP" value="1"/>
            <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
            <option name="TERNARY_OPERATION_WRAP" value="1"/>
            <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
            <option name="FOR_STATEMENT_WRAP" value="1"/>
            <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
            <option name="WRAP_COMMENTS" value="true"/>
            <option name="IF_BRACE_FORCE" value="3"/>
            <option name="DOWHILE_BRACE_FORCE" value="3"/>
            <option name="WHILE_BRACE_FORCE" value="3"/>
            <option name="FOR_BRACE_FORCE" value="3"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="4"/>
                <option name="CONTINUATION_INDENT_SIZE" value="8"/>
                <option name="TAB_SIZE" value="4"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="JSON">
            <indentOptions>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="JavaScript">
            <option name="RIGHT_MARGIN" value="80"/>
            <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
            <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
            <option name="ALIGN_MULTILINE_FOR" value="false"/>
            <option name="CALL_PARAMETERS_WRAP" value="1"/>
            <option name="METHOD_PARAMETERS_WRAP" value="1"/>
            <option name="BINARY_OPERATION_WRAP" value="1"/>
            <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
            <option name="TERNARY_OPERATION_WRAP" value="1"/>
            <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
            <option name="FOR_STATEMENT_WRAP" value="1"/>
            <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
            <option name="IF_BRACE_FORCE" value="3"/>
            <option name="DOWHILE_BRACE_FORCE" value="3"/>
            <option name="WHILE_BRACE_FORCE" value="3"/>
            <option name="FOR_BRACE_FORCE" value="3"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="PROTO">
            <option name="RIGHT_MARGIN" value="80"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="CONTINUATION_INDENT_SIZE" value="2"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="protobuf">
            <option name="RIGHT_MARGIN" value="120"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="CONTINUATION_INDENT_SIZE" value="2"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="Python">
            <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
            <option name="RIGHT_MARGIN" value="80"/>
            <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="SASS">
            <indentOptions>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="SCSS">
            <indentOptions>
                <option name="CONTINUATION_INDENT_SIZE" value="4"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="TypeScript">
            <indentOptions>
                <option name="INDENT_SIZE" value="2"/>
                <option name="TAB_SIZE" value="2"/>
            </indentOptions>
        </codeStyleSettings>
        <codeStyleSettings language="XML">
            <option name="RIGHT_MARGIN" value="120"/>
            <indentOptions>
                <option name="INDENT_SIZE" value="4"/>
                <option name="CONTINUATION_INDENT_SIZE" value="8"/>
                <option name="TAB_SIZE" value="4"/>
            </indentOptions>
        </codeStyleSettings>
    </code_scheme>
    

    然后打开 IDEA 的偏好设置,按照下面的顺序导入配置:

    并确保导入包的顺序如下:

    4 - 安装自动格式化插件(推荐)

    推荐安装 Save Action 插件,用于自动格式化代码:

    安装好之后,在这里修改使用如下配置:

    此插件有助于按照上述代码规范,自动格式化新增或修改的文件。

    5 - 提交代码

    修改完代码后,参考这里的格式来提交代码到你的仓库:

    然后发起 PR(也就是 Pull Request,即请求代码主仓库拉取你的代码),后续流程,请参考:贡献代码


    版权声明

    作者:瘦风(https://healchow.com)

    出处:博客园-瘦风的南墙(https://www.cnblogs.com/shoufeng)

    感谢阅读,公众号 「瘦风的南墙」 ,手机端阅读更佳,还有其他福利和心得输出,欢迎扫码关注

    本文版权归博主所有,欢迎转载,但 [必须在页面明显位置标明原文链接],否则博主保留追究相关人士法律责任的权利。

  • 相关阅读:
    idea工具如何在修改jsp后不用一直重启idea
    解决端口被占用问题
    tomcat端口强制关闭
    tomcat部署方式之三(war包,也是最重要的)
    tomcat部署方式之二
    tomcat的配置方式一
    在启动tomcat时出现java_home未配置的问题(闪退)
    mysql出现“mysql不是内部或外部命令也不是可运行”
    staruml下载
    用java语言实现一个观察者模式
  • 原文地址:https://www.cnblogs.com/shoufeng/p/16187263.html
Copyright © 2020-2023  润新知