From 6a7583bb0802f39cc16c8e656e5daf1ded8f0d01 Mon Sep 17 00:00:00 2001 From: Mingyu Chen Date: Thu, 2 Jul 2020 13:54:36 +0800 Subject: [PATCH] [Doc] Add doc for setting dev env of FE in Eclipse (#3952) Also fix some doc bugs --- .../images/eclipse-import-fe-project-1.png | Bin 0 -> 69072 bytes docs/.vuepress/sidebar/en.js | 6 +- docs/.vuepress/sidebar/zh-CN.js | 7 +- docs/en/developer-guide/fe-eclipse-dev.md | 164 ++++++++++++++++++ docs/zh-CN/developer-guide/fe-eclipse-dev.md | 164 ++++++++++++++++++ docs/zh-CN/developer-guide/fe-idea-dev.md | 14 +- 6 files changed, 346 insertions(+), 9 deletions(-) create mode 100644 docs/.vuepress/public/images/eclipse-import-fe-project-1.png create mode 100644 docs/en/developer-guide/fe-eclipse-dev.md create mode 100644 docs/zh-CN/developer-guide/fe-eclipse-dev.md diff --git a/docs/.vuepress/public/images/eclipse-import-fe-project-1.png b/docs/.vuepress/public/images/eclipse-import-fe-project-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e33d9f393da8c1aaf1b6407fe3d66e953cf63b87 GIT binary patch literal 69072 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%0AYDu1;I_-(O=`Wg;pTdU4(Sj2yfAWBqJA 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 + +# Setting FE dev env using Eclipse + +## Preparation + +* JDK 1.8+ +* Maven 3.x+ +* Eclipse,with [M2Eclipse](http://www.eclipse.org/m2e/) installed + +### Code Generation + +The FE module requires part of the generated code, such as Thrift, Protobuf and other frameworks. This part needs to be generated by compiling the contents of the `gensrc/` directory in the Linux environment. + +1. Under Linux, enter the source code directory and execute the following command: + + ``` + sh build.sh --clean --fe + ``` + +2. Then package the generated `gensrc/build/java` directory: + + `cd gensrc/build/ && tar czf java.tar.gz java/` + +3. Copy `java.tar.gz` to the `fe/` directory of the development environment and unzip + + ``` + cp java.tar.gz /path/to/doris/fe/ + cd /path/to/doris/fe/ && tar xzf java.tar.gz + ``` + +## Import FE project + +1. In the `fe/` directory of the development environment, execute the following command to generate the Eclipse project file: + + `cd /path/to/doris/fe/ && mvn -npr eclipse:eclipse -Dskip.plugin=true` + + After the execution is completed, the `.project` and `.classpath` files will be generated in the `fe/` directory. + +2. Import FE project + + * Open Eclipse,choose `File -> Import`. + * Choose `General -> Existing Projects into Workspace`. + * `Select root directory` and choose `fe/` directory,click `Finish` to finish. + * Right click the project, and choose `Build Path -> Configure Build Path`. + * In the `Java Build Path` dialog, choose the `Source` tab, click `Add Folder`, and select the `java/` directory that was copied and unzipped before adding. + * Click `Apply and Close` to finish. + +At this point, FE project import is complete. The project directory in Eclipse is roughly as follows: + +![](/images/eclipse-import-fe-project-1.png) + +## Run Unit Test + +Right-click on the unit test file you want to run and select `Run As -> JUnit Test`. (If you want to debug, select `Debug As -> JUnit Test`). + +If the following error occurs: + +``` +java.lang.Exception: Method xxxx should have no parameters +``` + +Then right-click the unit test file and select `Run As -> Run Configurations...`. (If you want to debug, select `Debug As -> Debug Configurations...`). + +Add to the `VM arguments` in the `Arguments` tab: + +``` +-javaagent:${settings.localRepository}/org/jmockit/jmockit/1.48/jmockit-1.48.jar +``` + +Among them, `${settings.localRepository}` should be replaced with the path of the maven library path, such as: + +``` +-javaagent:/Users/cmy/.m2/repository/org/jmockit/jmockit/1.48/jmockit-1.48.jar +``` + +Then just run `Run/Debug`. + +## Run FE + +You can directly start an FE process in Ecplise to facilitate debugging the code. + +1. Create a runtime directory + + ``` + mkdir /path/to/doris/fe/run/ + cd /path/to/doris/fe/run/ + mkdir conf/ log/ palo-meta/ + ``` + +2. Create configuration file + + Create the configuration file `fe.conf` in the `conf/` directory created in the first step. You can directly copy `conf/fe.conf` in the source directory and make simple changes. + +3. Find the `src/main/java/org/apache/doris/PaloFe.java` file in Ecplise, right-click and select `Run As -> Run Configurations...`. Add the following environment variables to the `Environment` tab: + + * `DORIS_HOME: /path/to/doris/fe/run/` + * `PID_DIR: /path/to/doris/fe/run/` + * `LOG_DIR: /path/to/doris/fe/run/log` + +4. Right-click `PaloFe.java` and select `Run As -> Java Application` to start FE. + +## Code Update + +1. Update lexical and grammar files + + If you modified `fe/src/main/cup/sql_parser.cup` or `fe/src/main/jflex/sql_scanner.flex` file. You need to execute the following commands in the `fe/` directory: + + ``` + mvn de.jflex:maven-jflex-plugin:1.4.3:generate + mvn net.sourceforge.czt.dev:cup-maven-plugin:1.6-cdh:generate + ``` + + Then refresh the project in Eclipse. + +2. Update maven dependencies + + If you update the dependency in `fe/pom.xml`, you need to execute the following command in the `fe/` directory: + + `mvn -npr eclipse:eclipse -Dskip.plugin=true` + + Then refresh the project in Eclipse. If it cannot be updated, it is recommended to delete the project and import it again according to this document. + +## Imports Order + +In order to maintain the Imports order of Java, please perform the following operations to set the Imports Order of the project. + +1. Create the file `fe_doris.importorder` and write the following: + + ``` + #Organize Import Order + #Wed Jul 01 16:42:47 CST 2020 + 4=javax + 3=java + 2=org + 1=com + 0=org.apache.doris + ``` + +2. Open Eclipse Preferences, select `Java -> Code Style -> Organize Imports`. Click `Import` to import the above file. diff --git a/docs/zh-CN/developer-guide/fe-eclipse-dev.md b/docs/zh-CN/developer-guide/fe-eclipse-dev.md new file mode 100644 index 0000000000..25c01321b2 --- /dev/null +++ b/docs/zh-CN/developer-guide/fe-eclipse-dev.md @@ -0,0 +1,164 @@ +--- +{ + "title": "FE 开发环境搭建 - Eclipse", + "language": "zh-CN" +} +--- + + + +# 使用 Eclipse 搭建 FE 开发环境 + +## 环境准备 + +* JDK 1.8+ +* Maven 3.x+ +* Eclipse,并已安装 [M2Eclipse](http://www.eclipse.org/m2e/) + +### 代码生成 + +FE 模块需要部分生成代码,如 Thrift、Protobuf 等框架的生成代码。这部分需要在 Linux 环境中通过编译 `gensrc/` 目录中的内容生成。 + +1. 在 Linux 下,进入到源码目录,执行下面的命令: + + ``` + sh build.sh --clean --fe + ``` + +2. 然后将生成的 `gensrc/build/java` 目录打包: + + `cd gensrc/build/ && tar czf java.tar.gz java/` + +3. 将 `java.tar.gz` 拷贝到开发环境的 `fe/` 目录下,并解压 + + ``` + cp java.tar.gz /path/to/doris/fe/ + cd /path/to/doris/fe/ && tar xzf java.tar.gz + ``` + +## 导入 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`,勾选添加之前拷贝并解压的 `java/` 目录。 + * 点击 `Apply and Close` 完成。 + +至此,FE 导入完成。Eclipse 中的工程目录大致如下: + +![](/images/eclipse-import-fe-project-1.png) + +## 运行单元测试 + +在想要运行的单元测试文件上右击,选择 `Run As -> JUnit Test`。(如果要单步调试,则选择 `Debug As -> JUnit Test`)。 + +如果出现以下错误: + +``` +java.lang.Exception: Method xxxx should have no parameters +``` + +则右击单元测试文件,选择 `Run As -> Run Configurations...`。(如果要单步调试,则选择 `Debug As -> Debug Configurations...`)。 + +在 `Arguments` 标签页中的 `VM arguments` 中添加: + +``` +-javaagent:${settings.localRepository}/org/jmockit/jmockit/1.48/jmockit-1.48.jar +``` + +其中 `${settings.localRepository}` 要换成 maven lib 库的路径,如: + +``` +-javaagent:/Users/cmy/.m2/repository/org/jmockit/jmockit/1.48/jmockit-1.48.jar +``` + +之后在运行 `Run/Debug` 即可。 + +## 运行 FE + +可以在 Ecplise 中直接启动一个 FE 进程,方便对代码进行调试。 + +1. 创建一个运行目录: + + ``` + mkdir /path/to/doris/fe/run/ + cd /path/to/doris/fe/run/ + mkdir conf/ log/ palo-meta/ + ``` + +2. 创建配置文件 + + 在第一步创建的 `conf/` 目录下创建配置文件 `fe.conf`。你可以直接将源码目录下 `conf/fe.conf` 拷贝过来并做简单修改。 + +3. 在 Ecplise 中找到 `src/main/java/org/apache/doris/PaloFe.java` 文件,右击选择 `Run As -> Run Configurations...`。在 `Environment` 标签页中添加如下环境变量: + + * `DORIS_HOME: /path/to/doris/fe/run/` + * `PID_DIR: /path/to/doris/fe/run/` + * `LOG_DIR: /path/to/doris/fe/run/log` + +4. 右击 `PaloFe.java`,选择 `Run As -> Java Application`,则可以启动 FE。 + +## 代码更新 + +1. 更新词法、语法文件 + + 如果修改了 `fe/src/main/cup/sql_parser.cup` 或者 `fe/src/main/jflex/sql_scanner.flex` 文件。则需在 `fe/` 目录下执行以下命令: + + ``` + mvn de.jflex:maven-jflex-plugin:1.4.3:generate + mvn net.sourceforge.czt.dev:cup-maven-plugin:1.6-cdh:generate + ``` + + 之后在 Eclipse 中刷新工程即可。 + +2. 更新 maven 依赖 + + 如果更新了 `fe/pom.xml` 中的依赖,则需在 `fe/` 目录下执行以下命令: + + `mvn -npr eclipse:eclipse -Dskip.plugin=true` + + 之后在 Eclipse 中刷新工程即可。如无法更新,建议删除工程,并按照该文档重新导入一遍即可。 + +## Import 顺序 + +为了保持 Java 的 Import 顺序,请执行如下操作设定项目的 Import Order + +1. 创建文件 `fe_doris.importorder` 并写入以下内容: + + ``` + #Organize Import Order + #Wed Jul 01 16:42:47 CST 2020 + 4=javax + 3=java + 2=org + 1=com + 0=org.apache.doris + ``` + +2. 打开 Eclipse 的偏好设置(Preferences),选择 `Java -> Code Style -> Organize Imports`。点击 `Import` 导入上述文件。 diff --git a/docs/zh-CN/developer-guide/fe-idea-dev.md b/docs/zh-CN/developer-guide/fe-idea-dev.md index aa09c2a23c..ad1bf1541f 100644 --- a/docs/zh-CN/developer-guide/fe-idea-dev.md +++ b/docs/zh-CN/developer-guide/fe-idea-dev.md @@ -1,6 +1,6 @@ --- { - "title": "windows下fe开发环境搭建", + "title": "FE 开发环境搭建 - Intellj IDEA", "language": "zh-CN" } --- @@ -24,7 +24,7 @@ specific language governing permissions and limitations under the License. --> -# apache doris windows下fe开发环境搭建 +# 使用 Intellj IDEA 搭建 FE 开发环境 ## 1.环境准备 @@ -40,17 +40,17 @@ $ sh build.sh --clean --fe 然后将 gensrc目录打包,拿出来,如下图 -![image-20200624124200704](../../.vuepress/public/images/DEBUG1.png) +![](/images/DEBUG1.png) 2.在windows下解压gensrc.tar.gz,解压后的目录如下图: -![image-20200624124420766](../../.vuepress/public/images/DEBUG2.png) +![](/images/DEBUG2.png) 3.进入build/java,将红色框出的部分整个拷贝到源码的fe/src/main/java目录下 -![image-20200624124550741](../../.vuepress/public/images/DEBUG3.png) +![](/images/DEBUG3.png) ## 2.调试 @@ -58,7 +58,7 @@ $ sh build.sh --clean --fe 2.在fe目录下创建下面红框标出的目录,并将webroot里的内容拷贝进去 -![image-20200624125009183](../../.vuepress/public/images/DEBUG4.png) +![](/images/DEBUG4.png) ## 3.配置conf/fe.conf @@ -143,7 +143,7 @@ mysql_service_nio_enabled = true 在IDEA中设置运行环境变量 -![image-20200624125409626](../../.vuepress/public/images/DEBUG5.png) +![](/images/DEBUG5.png) ## 5.启动fe