Most Bisq contributors use IDEA for development. The following instructions have been tested on IDEA 2021.3.
- Follow instructions in build.md to clone and build Bisq at the command line
- Open IDEA
- If you are inside a loaded Project, go to
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
, else go toCustomize -> All settings... -> Build, Execution, Deployment -> Compiler -> Annotation Processors
, and check theEnable annotation processing
to enable processing of Lombok annotations (Lombok plugin installed by default since v2020.3) - Go to
File -> New -> Project from Existing Sources...
(orProjects -> Open
from welcome screen) and select the main Bisq folder to automatically load the related Gradle project - If you did not yet setup JDK11 in IntelliJ, go to
File -> Project Structure -> Project
and setSDK
to your JDK11 folder - Select JDK11 for Gradle as well: go to
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
and select the JDK11 location inGradle JVM
field - Run
Build -> Build Project
, the process should complete correctly - Go to
Run > Edit Configurations... -> Plus (+) icon on the top left -> Application
and fill the requested fields as shown below, whereCLI arguments
should be taken from those listed in dev-setup.md (Alice instance in the example):
- You should now be able to run Bisq by clicking on the Play button or via
Run -> Run 'Bisq Desktop'
- Use
Run -> Debug 'Bisq Desktop'
to debug the application and execute breakpoints
TIP: If you encounter compilation errors in IDEA related to the
protobuf.*
classes, it probably is because you didn't build Bisq at the command line as instructed above. You need to run thegenerateProto
task in theother
project. You can do this via the Gradle tool window in IDEA, or you can do it the command line with./gradlew :other:generateProto
. After this, runBuild -> Build Project
again, and verify it completes successfully.If this does not solve the issue, try to execute
./gradlew clean
and then rebuild the project again.