# Outline

  • How to develop IoTDB in IDE
    • IDEA
    • Eclipse
    • Debugging IoTDB

# How to develop IoTDB in IDE

There are many ways to compile the source code of IoTDB, e.g., modify and compile with IDEA or Eclipse.

Once all UTs are passed after you modify codes, your modification basically works!


  • "File" -> "Open" -> choose the root path of IoTDB source code.
  • use mvn clean compile -Dmaven.test.skip=trueto get target.
  • mark directory server/target/generated-sources/antlr4 as source code
  • mark directory service-rpc/target/generated-sources/thrift as source code

# Eclipse

Using Eclipse to develop IoTDB is also simple but requires some plugins of Eclipse.

  • If your Eclipse version is released before 2019, Antlr plugin maybe not work in Eclipse. In this way, you have to run the command in your console first: mvn eclipse:eclipse -DskipTests. After the command is done, you can import IoTDB as an existing project:

    • Choose menu "import" -> "General" -> "Existing Projects into Workspace" -> Choose IoTDB root path;
    • Done.
  • If your Eclipse version is fashion enough (e.g., you are using the latest version of Eclipse), you can just choose menu "import" -> "Maven" -> "Existing Maven Projects".

# Debugging IoTDB

The main class of IoTDB server is org.apache.iotdb.db.service.IoTDB. The main class of IoTDB cli is org.apache.iotdb.client.Client (or org.apache.iotdb.client.WinClient on Win OS).

You can run/debug IoTDB by using the two classes as the entrance.

Another way to understand IoTDB is to read and try Unit Tests.

Copyright © 2020 The Apache Software Foundation.
Apache and the Apache feather logo are trademarks of The Apache Software Foundation

Disclaimer: Apache IoTDB (incubating) (Database for Internet of Things) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.