visual studio code 上构建StarRocks开发环境

目前官方只提供了在Clion和IDEA下的开发环境。Clion和IDEA都要收费的,而且需要Clion和IDEA两个开发环境。visual studio code 是免费的,而且同时支持java、c++等多种编程语言,所以用visual studio code 做StarRocks这种多编程语言的项目的开发环境是最适合的。有同学做过用visual studio code做StarRocks的开发环境吗?能否提供些参考经验?

有的,be部分用clangd就行,java部分比较麻烦,除了用java extension pack外,还需要配合修改 fe/fe-core/pom.xml才可以

谢谢回复!可以出一个具体的攻略步骤给后来者参考吗?

vscode fe

   首先需要删除 fe-core/pom.xmlpluginManagement 里有关 ecplise lifecycle 的配置(必须删除,注释可能有奇葩问题),之后需要配置不要扫描 contrib 下的项目,如下:

"java.import.exclusions": [
    "**/contrib/**",
    "**/node_modules/**",
    "**/.metadata/**",
    "**/archetype-resources/**",
    "**/META-INF/maven/**"
]

   其次 pom 中要添加生成代码的路径,以便进行跳转,如下:

<!-- add gensrc java build src dir -->
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <!-- add arbitrary num of src dirs here -->
                    <source>${basedir}/target/generated-sources/build/</source>
                    <source>${basedir}/target/generated-sources/proto/</source>
                    <source>${basedir}/target/generated-sources/thrift/</source>
                    <source>${basedir}/target/generated-sources/antlr4/com/starrocks/sql/parser</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

vscode be

   clangd 配置需要添加一下设置:

"clangd.arguments": [
  "--compile-commands-dir=${workspaceFolder}/be/build_Debug",
  "--background-index",
  "--clang-tidy",
  "--pretty",
]
1赞

:+1: :+1:

好像没那么简单,特别是be部分。不同的gcc版本be的构建还会出现编译错误。在IDE里进行编译使代码可以高亮提示代码语法错误还需要配置很多CMake参数。

不需要啊,BE 代码提示、语法检查等是 clangd 根据 compile_commands.json 进行的,build.sh 中已经指定了 cmake 参数了,只需要运行一次 build.sh,让 cmake 生成 compile_commands.json 就行了,都不用编译完,你是有地方没配置对吧