使用 Eclipse 搭建 FE 开发环境

    1. 在 Linux 下, 进入 `fe 目录下执行以下命令:

    2. 如果使用window开发 需要将生成的 目录打包:

      fe/fe-core/target/ && tar czf java.tar.gz generated-sources/

    3. java.tar.gz 拷贝到开发环境的 fe/fe-core/target/ 目录下,并解压

      1. cp java.tar.gz /path/to/doris/fe/fe-core/target/

    导入 FE 工程

    1. 在开发环境的 fe/ 目录下,执行以下命令生成 Eclipse 工程文件:

      cd /path/to/doris/fe/ && mvn -npr eclipse:eclipse -Dskip.plugin=true

      执行完成后,会在 fe/ 目录下生成 .project.classpath 文件

    2. 导入 FE 工程

      • 打开 Eclipse,选择 File -> Import
      • 选择 General -> Existing Projects into Workspace
      • Select root directory 选择 fe/ 目录,点击 Finish 完成导入。
      • 右击工程,选择 Build Path -> Configure Build Path
      • Java Build Path 对话框中,选择 Source 标签页,点击 Add Folder,勾选添加之前拷贝并解压的 目录。
      • 点击 Apply and Close 完成。

    至此,FE 导入完成。Eclipse 中的工程目录大致如下:

    在想要运行的单元测试文件上右击,选择 Run As -> JUnit Test。(如果要单步调试,则选择 Debug As -> JUnit Test)。

    如果出现以下错误:

    则右击单元测试文件,选择 Run As -> Run Configurations...。(如果要单步调试,则选择 Debug As -> Debug Configurations...)。

    Arguments 标签页中的 VM arguments 中添加:

    1. -javaagent:${settings.localRepository}/org/jmockit/jmockit/1.48/jmockit-1.48.jar

    其中 ${settings.localRepository} 要换成 maven lib 库的路径,如:

    之后在运行 Run/Debug 即可。

    运行 FE

    可以在 Eclipse 中直接启动一个 FE 进程,方便对代码进行调试。

    1. 创建一个运行目录:

      1. mkdir /path/to/doris/fe/run/
      2. cd /path/to/doris/fe/run/
      3. mkdir conf/ log/ palo-meta/
    2. 创建配置文件

    3. 右击 PaloFe.java,选择 Run As -> Java Application,则可以启动 FE。
    1. 更新词法、语法文件或者thrift 和proto 文件

      如果修改了 fe/fe-core/src/main/cup/sql_parser.cup 或者 fe/fe-core/src/main/jflex/sql_scanner.flex文件或者proto 和thrift 文件。则需在 fe 目录下执行以下命令:

      之后在 Eclipse 中刷新工程即可。

    2. 更新 maven 依赖

      如果更新了 fe/pom.xml 中的依赖,则需在 fe/ 目录下执行以下命令:

      mvn -npr eclipse:eclipse -Dskip.plugin=true

      之后在 Eclipse 中刷新工程即可。如无法更新,建议删除工程,并按照该文档重新导入一遍即可。

    Import 顺序

    为了保持 Java 的 Import 顺序,请执行如下操作设定项目的 Import Order

      1. #Organize Import Order
      2. #Wed Jul 01 16:42:47 CST 2020
      3. 4=javax
      4. 3=java
      5. 2=org
      6. 1=com
      7. 0=org.apache.doris