1

描述

上一篇(一个六年经验的python后端是怎么学习用java写API的(2)Extracter,微信文章抓取清洗入库)物料准备完成后,就可以正式进入java的学习了。

开始正式开发前,我需要搭建开发环境,顺手的开发环境不仅提高开发效率还能改善心情。

首先描述之前个人在用的 python 的开发环境:

  • pc两台,macbook pro + 高配windows台式机一台
  • 局域网内使用 synerg 一套键盘鼠标,操作两台不同系统的pc
  • mac 内用 vagrant + virtual + 一个ubuntu的box,做linux的虚拟机
  • windows 通过 xshell 配置 ssh 链接到 mac,然后 vagrant ssh到虚拟机内写python
  • ide 为 vim,这是我通过 janus 微改自用的 vim 插件版本

为什么用两台机器?

  • mac为14年款,东西开多了会明显卡顿
  • 方便,可以一台开代理,一台不开,浏览内外(例如google)网的速度都不受影响
  • 台式接大屏显示器,可视代码更广
  • 高配置台式机可以开 qq、微信、网易云音乐、迅雷、大量chrome等即耗内存的东西
  • 核心开发环境全在mac,方便移动办公

那么我对java开发环境的需求

  • 两台机器开发 mac + windows
  • 数据库等存储类放到 mac 上,方便移动办公
  • 代码可以主要在windows上写(屏幕大),而且用vim的方式

得益于 java 的跨平台特性,代码放在windows和mac上执行都没问题,代码同步使用git或者ide的文件同步命令都可以,数据库可以直接通过环境变量链接局域网内的mac数据库。只要两台机器对应配置好即可

最终的ide选择

windows

  • intellij idea
  • windows git
  • jdk 8

mac

  • intellij idea
  • git
  • jdk 8

ide 配置

直接下载安装的

  • windows git
  • jdk 8,windows + mac 双份,注意需要注册oracle账号,需要梯子
  • intellij idea 非社区版, windows + mac 双份

配置 intellij idea(windows和mac基本相同)

  • 打开app后选择创建一个项目(gradle项目),或者直接导入 parrot (提前clone到某个目录)
  • 配置jdk 8,左上角 file --> Project Structure, 找到SDKs,点击加号选择jdk8的安装目录,点击右下方apply按钮;然后点击Project,找到Project SDK,选择1.8,点击应用

1.PNG
2.png

  • 配置构建工具的jdk8,file --> settings,找到build里面的gradle 的 gradle jvm 和 maven importing里面的 JDK FOR importer 都改成jdk 8

3.png
4.png

  • 配置run的jdk,Run --> Edit Configurations, Template里面找到Application, 右上角有个 Create configuration。

    Main class对应选择入口类
    Program arguments输入 server config/environment.yml (对应项目的环境变量文件)
    Working directory选择工作目录
    环境变量参考config/environment.yml与自己数据库的具体配置添加具体环境变量
    Use classpath or module,选择主入口java类的包名最顶级所在文件夹
    jre 选 1.8

5.png
6.png

  • 安装 vim 插件,file-->settings 找到 Plugins,搜索vim安装想装的插件

7.png

windows项目的变化自动同步到mac(不用git的情况),为什么要这么做?有时候有事儿需要带着mac出门,而mac和windows代码其实是割裂的,我对git又有比较强的一些个人习惯,用git实时同步不可取。设置自动同步会将windows修改的文件实时变更到mac上,这样即使着急出去代码也是同步的。当然最后还是要用git做同步。

  • 文档,file-->settings-->Deployment 点击加号,创建一个mac,选择sftp,将局域网的host和链接ssh的配置对应添加,ssh成功后 Root path选则mac的代码目录。
  • mappers需要映射windows的目录和mac的目录地址,注意mac部分是相对路径,需要添加哪些ide有提示,如果不全的话会有warning
  • 在Deployment下面的config里面 找到 Upload change files automatically那一行,我是用的主动保存才同步scp到mac。

10.png
11.png
12.png

启动项目

  • 安装依赖,与python的pip类似,java可以用maven来管理依赖。 首先打开 build.gradle 文件,将maven的url改为国内源,这么repositories这段大概是说依赖包通过项目的libs和maven的这两个源去下载; dependencies 就是依赖的包,格式看起来是 group:报名:版本,如果是直接放在项目libs目录的直接写文件名即可。回到idea在右侧找到gradle,点开在项目点右键,找到Reimport Gradle Project去下载依赖。
    repositories {  
      flatDir {  
      dirs 'libs'  
      }  
      maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' }  
      maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}  
    }
    

    dependencies {  
      compile 'org.slf4j:slf4j-api:1.7.13'
      compile name: 'mybatis-jackson-0.4.2'
    }

8.png

  • 启动项目,上一段配置jdk的时候讲过如果配置run的config了,所以默认这里是配置好的,配置好后就可以用过run或者debug的方式执行项目了。

9.png

  • 如果编译有包找不到检查下这里是不是 main 被包含了两次导致依赖库无法导入

1.png

开放 mac 的某个端口给windows用

例如用了某种数据库,需要开发1234这个端口给windows用,执行下面的操作后,在idea的database栏目添加配置查看是否连接成功。

sudo vim /etc/pf.conf

# Open port 1234 for TCP on all interfaces
pass in proto tcp from any to any port 1234
# You can limit the ip addresses .. replace any with allowed addresses ..


sudo pfctl -f /etc/pf.conf
重启电脑

13.png

接下来

todo: 一个六年经验的python后端是怎么学习用java写API的(4) RestAPI,dropwizard 的第一组API


D咄咄
1.7k 声望257 粉丝

Life is to short, please use python.