配置InteliJ IDE开发环境

对于Java开发,为了降低开发难度,提高开发效率,开发者应首先选择并配置一款Java集成开发环境,如IntelliJ IDEA、NetBeans或者Eclipse等,本文将以InteliJ IDEA举例来介绍如何配置Java-tron集成开发环境。

本文介绍在InteliJ IDEA中配置Java-tron集成开发环境。Java-tron节点支持部署在 LinuxMacOS 操作系统上,并且依赖Oracle JDK 1.8 ,不支持其它版本的JDK。在配置InteliJ IDE开发环境前,请确保如下前置条件:

  • LinuxMacOS 操作系统上配置开发环境
  • 系统安装了Oracle JDK 1.8gitInteliJ IDEA

配置InteliJ IDEA

InteliJ IDEA 配置步骤如下:

  • 安装Lombok插件

    在[IDEA]->[Preferences]->[Plugins] 中搜索lombok 安装插件,Lombok通过加注解的方式让Java-tron代码更加简洁。

  • 打开Enable annotation processing配置项 image

  • 检查JDK版本,确保InteliJ IDEA中使用的是Oracle JDK 1.8 image

  • 下载Java-tron源码

    将Java-tron源代码克隆到本地,并且切换到develop分支。

    $ git clone https://github.com/tronprotocol/java-tron.git
    $ git checkout -t origin/develop
    

配置代码风格检查插件

Java-tron代码风格需要符合Google check style 规范。在IDEA中,可以使用Checkstyle 插件检查代码是否符合Google check style规范。插件的安装及配置流程如下:

  • 在[IDEA]->[Preferences]->[Plugins] 中搜索checkstyle安装插件 image

  • 代码风格配置

    首先下载Java-tron代码风格检查配置文件,然后在Checkstyle配置页面中,点击"+“,选择使用刚刚下载的"checkStyleAll.xml”,添加完成后,可以在"Configuration Files"列表中看到此文件,最后点击"Apply"完成配置。 image

    配置完成Checkstyle插件后,就可以使用Checkstyle检查代码了。Checkstyle可以对某个模块或者整个工程做检查,也可以对单个文件做检查,在文件编辑器的右键菜单中选择"Check Current File",checkstyle就会对该文件进行检查了。如果检测出代码问题,则需根据提示依次修改。当没有代码问题时,才可以提交代码。

    image

编译Java-tron

您可以使用终端,在Java-tron工程目录下,通过如下命令编译Java-tron:

$ ./gradlew clean build
上面的编译命令会执行所有测试用例,可以使用-x test跳过测试用例的执行过程:
$ ./gradlew clean build -x test

您也可以在IDEA中使用图形化方式编译Java-tron:在IDEA中打开Java-tron工程,点击"Build" -> "Build Project" 编译工程。

运行和调试

在运行Java-tron之前,需要创建一个工作目录,用于存放节点运行时产生的数据库文件及日志文件。

$ mkdir /Users/javatrondeploy

在"Run/Debug Configurations"配置面板中,指定运行Java-tron的JDK版本为java 8,然后再配置运行Java-tron的命令行参数,比如通过-c参数指定节点配置文件为config.conf

"Working directory"配置成之前创建的Java-tron的工作目录,Java-tron启动时会在该目录下寻找config.conf配置文件,请确保config.conf已经放到该目录下。 image

设置完成后,点击"Apply"按钮完成配置。然后您就可以在IDEA中点击"Run"->"Run FullNode" 启动Java-tron节点,或者点击"Run"->"Debug FullNode"以debug模式启动节点。节点启动后,Java-tron日志存储在Working Directory配置的工作目录下。 image

如果想要调试Java-tron代码,可以在Java-tron代码中打断点,然后以debug模式启动,这样就可以逐行跟踪调试代码了。 image