跟光磊学Java开发-Windows版Java集成开发环境搭建
企业级项目的开发流程
如果你在公司开发项目,通常是本地安装Java8,Git,Maven3,IntelliJ IDEA 2020.2,而开发人员在本地编写好代码后提交代码的分支是开发(dev)分支,经过各个业务的开发联合测试通过后,再由你的Team Leader或者测试人员合并到测试分支进行完整的功能测试、集成测试以及压力测试后,再合并到UT分支,此时会由产品经理测试验收,验收通过后发布线上环境给产品和用户验收。此时会将UT分支的代码合并到master分支。版本管理使用的是Gitlab,而不是GitHub。
因此通常是有四个环境,分别对应四个分支的代码。除此以外当新业务需求下来时,会基于dev分支创建新的分支后开发,然后在合并到dev分支,dev到test,test到ut,ut到master这样一个开发流程。而开发、测试环境都是独立的数据库,UT和线上共享一个数据库。开发环境、测试环境、UT环境和线上环境都是不同的应用配置。
Maven基础
因为等会要创建一个基于Maven的项目,这里普及下maven基础知识
Maven是一个Apache开源组织下的开源项目,用于Java项目的构建,所谓的构建就是自动化完成Java项目的清理、编译、测试、打包、部署的构建流程。
Maven本身也是使用Java语言编写,因此在安装、使用Maven之前必须安装、配置好JDK
- echo %JAVA_HOME% 用于查看JAVA_HOME的路径,Maven会基于JAVA_HOME来查找JDK
- javac -version 查看Java编译器的版本
- java -version 查看java解释器的版本
如果能够正常显示JAVA_HOME以及Java编译器和Java解释器的版本信息时表示Java环境准备好了,如果不会配置的同学可以在头条号搜索跟光磊学Java开发-Java概述与开发环境搭建,详细介绍了JDK下载、安装和配置。
然后就可以去官网下载Maven,这里直接选择下载apache-maven-3.6.3-bin.zip文件即可
下载完成后将apache-maven-3.6.3-bin.zip解压到指定的目录,例如D:DevToolsJavaapache-maven-3.6.3,maven不需要安装,解压并进行相关配置后就能使用。
然后配置MAVEN_HOME环境变量
并且在PATH环境变量中引用
当配置完成后启动终端,并在终端上输入mvn -v
查看Maven的版本信息以及依赖的环境信息
在正式使用maven之前,还需要修改settings.xml文件,该文件位于D:DevToolsJavaapache-maven-3.6.3conf目录下。
maven默认的仓库路径是 ${user.home}/.m2/repository,这里修改成D:DevToolsJavamaven_repository
除此以外还要添加阿里云的maven私服仓库配置
到这里Maven的配置就结束了
需要说明的是maven的使用都是通过命令进行,不过IDEA对maven进行了较好的封装,开发环境下使用IDEA封装的Maven即可,而测试环境或者显线上环境需要使用maven命令来使用maven,后续会介绍maven相关的命令。
Git基础
GitLinux之父Linus Torvalds使用C语言编写的开源的分布式版本控制系统,java-core项目会接入git做版本控制、并且会分享到GitHub。
但是在使用GitHub之前,首先需要下载和安装Git,如果官网下载速度慢,可以考虑将下载链接复制到迅雷后下载。目前最新版本是Git2.29
Git的安装和普通的程序安装没有什么差别,只需要选择安装路径,默认是C:Program FilesGit,然后点击Next默认安装即可。
在使用Git时默认也是基于终端的命令行,不过IDEA对Git也有比较好的封装。目前我们主要是在IDEA中使用Git,当然在IDEA中使用Git之前也是需要安装Git,可以进入IDEA的设置菜单,然后找到Git的Path to Git executable,默认会从C:Program FilesGitcmd路径下查找git.exe可执行程序,如果你在安装Git时修改了路径,此处需要修改成你的安装路径
然后点击Test,如果能够获取Git的版本信息,那么就可以在IDEA中使用Git了。
在正式使用Git之前我们还需要使用git config命令来设置提交代码时的用户信息,主要是用户名和用户邮箱
C:Usersittim>git config --global user.name "ittimeline"
C:Usersittim>git config --global user.email "ittimelinedotnet@gmail.com"
需要注意的是这里设置的邮箱最好和GitHub注册时的用户名和邮箱保持一致
IntelliJ IDEA 基本使用
IDEA 介绍
IDEA 全称是IntelliJ IDEA,它是来自捷克的Jetbrains公司开发的一款功能强大的Java集成开发环境。
除了IDEA以外,Jetbrains公司还开发其他主流语言的集成开发环境,
- GoLand Go语言的集成开发环境
- Pycharm Python语言的集成开发环境
- Webstrom JavaScript的集成开发环境
- CLion C/C++的集成开发环境
- AppCode macOS平台的集成开发环境
- DataGrip 数据库客户端
这里重点介绍IntelliJ IDEA 在Windows下开发Java项目
IDEA 是目前主流互联网公司首选的Java开发工具,
- 支持主流操作系统
- Windows
- Linux(Ubuntu)
- macOS
- 支持主流的JVM语言
- Java
- Scala
- Kotlin
- Groovy
同时通过强大的插件功能也可以支持其他语言的应用开发
- Python
- Ruby
- PHP
- SQL
- Go
- JavaScript
- TypeScript
- CoffeeScript
- Dart
- Erlang
IntelliJ IDEA 主要分为三个版本
- IntelliJ IDEA 商业版
用于JVM,Web和企业开发的商业版。它包含社区版的所有功能,并增加了对其他基于IntelliJ平台的IDE所关注的语言的支持,以及对各种服务器端和前端框架,应用程序服务器,与数据库的集成和配置文件的支持。工具等。 - IntelliJ IDEA 社区版
针对JVM和Android开发的免费开源版。 - IntelliJ IDEA 教育版
该免费版包含用于学习Java,Kotlin和Scala的内置课程,交互式编程任务和作业以及教师创建自己的课程和管理教育过程的特殊功能(请参阅IntelliJ IDEA Edu)。
官网给出了旗舰版和社区版的主要差别比较
IDEA 最新特性:https://www.jetbrains.com/zh-cn/idea/whatsnew/
IDEA功能特点:https://www.jetbrains.com/zh-cn/idea/features/
IDEA官方文档:https://www.jetbrains.com/help/idea/discover-intellij-idea.html
IDEA 下载和安装
目前IDEA可以通过两种方式下载,第一种是从官网下载IntelliJ IDEA 安装包后独立安装,第二种是通过Jetbrains提供的Toolbox App 来下载、安装和运行IntelliJ IDEA。
我这里使用Toolbox App来下载、安装IDEA,当然你得提前在你的机器上安装Toolbox App,它可以很好的用于管理你的Jetbrains全家桶以及项目。
当下载并安装好Toolbox App后它会自动启动,在windows的底部任务栏有个图标,点击后会出现Tools和Projects两个视图
其中Tools展示了Jetbrains全家桶,而Project用于展示使用Jetbrains全家桶开发的项目。
我们选择在Tools视图中选择安装IDEA商业版2020.3,这也是目前(2020/12/09)的最新版本
当点击Install后Toolbox App会自动从Jetbrains官网下载安装包
下载完成后会自动完成安装,默认的安装路径是C:UsersittimAppDataLocalJetBrainsToolboxappsIDEA-Uch-0
IntelliJ IDEA 设置
在首次启动前可以通过Toolbox App 对IDEA的运行环境 进行一些设置
IDEA运行时会读取一个后缀名为.vmoptions的配置文件,
默认的配置文件如下
-Xms128m
-Xmx3000m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-Dide.no.platform.update=true
大家可以针对自己机器的硬件配置做相应的调整,增大内存提升IDEA的性能,其中可以调整的参数有
- -Xms
- -Xmx
- -XX:ReservedCodeCacheSize
- -XX:SoftRefLRUPolicyMSPerMB
调整后的参数
-Xms512m
-Xmx3000m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=200
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-Dide.no.platform.update=true
首次运行IDEA设置
在Toolbox App中点击IDEA就可以启动
-
启动后会弹出数据分享
-
导入IDEA设置
如果你之前安装过其他版本的IDEA,可以选择Config or installation directory
-
激活IDEA
由于IDEA商业版是收费的产品,在首次启动时会提示需要激活产品,提供了三种方式激活产品
也可以选择试用30天
- 欢迎页
当选择激活或者免费试用30天后就会出现欢迎页面
Projects 表示项目,在项目的视图中可以选择
- New Project 创建项目
- Open 打开已有的项目
- Get from VCS 从版本控制系统中获取项目
Customize 表示个性化设置,这里可以修改主题、字体大小、快捷键的设置
除此以外点击all settings 可以查看IDEA中所有的设置项
这里主要调整maven即可
主要是指定maven的安装路径以及maven的配置文件路径和maven 仓库路径
Plugins 可以查看已经安装的插件和在插件市场中寻找你需要的个性化插件
因为 Ant几乎没啥项目使用了,基本都是用Maven或者Gradle来构建项目,因此我这里直接禁用了
Learning IntelliJ IDEA 就是学习IDEA的使用,大佬们可以跟着我的"跟光磊学Java开发"走就行了。
使用IDEA创建Java项目
-
在启动界面的Projects视图中点击 New Project 创建项目
-
选择基于Maven的项目
IDEA 会自动读取系统中已经安装的JDK
-
设置项目信息
- Name:项目名称 java-core项目会涵盖java开发的方方面面,预计会达到50w行代码以上
- Location:表示项目的路径 ,这里设置为D:workspacejavaittimelinedotnetjava-core
- Artifact Coordinates 主要用于设置maven项目的坐标
-
关闭每日提示
-
修改Maven路径
IDEA内置了maven,这里配置成之前安装的maven
选中File->Settings菜单就可以进入设置项,然后设置maven
当首次创建项目时maven会从阿里云下载其自身所依赖的插件到本地仓库下
- 项目结构说明
java-core是项目名称,该项目是一个基于maven标准结构的项目
- .idea和java-core.iml是IDEA的项目配置信息,日常开发时不会修改此目录的内容
- src/main/java用于存放Java代码
- src/main/resource用于存放资源文件,例如项目的配置文件
- src/test/java 用于存放项目的测试代码
- External Libraries 用于存放Java项目依赖的类库,目前只会依赖JDK的类库
- pom.xml文件是maven项目的配置文件
右侧maven菜单提供了maven生命周期的所有子菜单,包含清理、编译、测试、打包、部署等等双击即可执行。
Database用于写SQL操作数据库,后续使用DataGrip实现。
java-core上传至Github
在将java-core上传到Github之前,需要准备两个文件:README.md和.gitignore以及删除src目录,因为java-core目录作为父模块存在,不会存放任何代码
- README.md是一个基于markdown格式的项目介绍的文件,你可以使用Typora markdown编辑器去编辑项目说明
- .gitignore文件是用于配置哪些文件不需要上传,例如.idea目录和java-core.iml不需要上传到Github
java-core项目结构
使用GitHub之前需要去GitHub官网注册一个账号,注册账号时需要填写用户名、邮箱和密码信息
注册成功之后使用GitHub生成一个Token,生成Token的地址是https://github.com/settings/tokens
-
设置token
-
生成token
-
生成成功
然后在IDEA中以token的方式登录Github
输入Token登录
登录成功
分享项目到GitHub
-
Share Project On Github
-
设置项目描述信息
-
选择初始化提交内容和提交消息
由于有了.gitignore文件,提交时target、.idea、java-core.iml文件都被过滤了。
此时会创建本地Git仓库,即项目中的多了.git目录,然后推送到远程的master分支。
- 推送到GitHub成功
项目上传到GitHub后使用浏览器访问https://github.com/ittimeline/java-core 时就可以看到java-core项目
IDEA中git分支的创建和切换
在开发hellowrold之前,我们先依次使用IDEA创建feature-jdk,dev,test,ut 四个分支。
选中右下角的master
然后会出现New Branch
点击New Branch创建第一个分支feature-jdk
当分支创建完成后IDEA自动切换到feature-jdk分支
然后点击feature-jdk后继续点击New Branch依次创建 dev,test,ut三个分支
此时一共有feature-jdk,dev,test,ut和master五个本地分支。第一阶段也就是Java语言基础的代码都会写在feature-jdk分支上。
使用IDEA开发HelloWorld
-
切换分支
如果当前分支不是feature-jdk,选中当前的分支名字,使用checkout切换到feature-jdk分支。
-
在java-core下创建子模块 java-core-jdk-foundational
选中java-core,然后New->Module
选择基于Maven的模块
设置maven项目坐标
自动添加到Git管理
当项目被Git管理后创建新文件时IDEA会提示是否添加到Git的管理,我们这里选择添加,并且勾选Don't ask again,即以后不再询问是否添加。
- 在java-core-jdk-foundational模块的src/main/java目录下创建一个package
包名一般都是公司域名倒过来,例如com.taobao,然后再跟上项目名和模块名。我这里就叫做net.ittimeline.java.core.jdk.foundational.object
- 配置文件模板
在创建Java文件,例如类文件、接口文件和枚举时可以给它们添加默认的文档注释信息
/**
* ${descritpion}
* @author tony 18601767221@163.com
* @since JDK11
* @version ${DATE} ${TIME}
*/
- 在object包下创建一个Java类
类名叫HelloWorld
填写说明信息
然后会自动生成如下文件
- 编写HelloWorld
编写HelloWorld时可以使用IDEA提供的一些快捷方式
- psvm或者main 用于生成main方法
- sout用于生成打印输出语句
System.out.println();
package net.ittimeline.java.core.jdk.foundational.object;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World with Windows10 1903 & JDK11.0.9 & IntelliJ IDEA 2020.3");
}
}
- 运行HelloWorld
IDEA在main函数的左边都会生成一个绿色的运行按钮,点击就可以运行程序,也可以使用快捷键Ctrl+Shfit+F10来运行程序
默认情况下IDEA的Toolbar是不显示的,这里启用Toolbar
启用后可以看到运行和调试程序的Toolbar
当程序首次后,后续可以点击启动来运行程序和调试Toolbar来调试程序。
- 查看运行结果
IDEA提供了终端来查看程序的结果
Git在IDEA中的基本使用
IDEA中绿色的文件表示没有提交到Git仓库的文件
当选中项目后右键选中Git会列出Git的常见操作
我们这里需要点击Commit Directory 提交刚才添加的java-core-jdk-foundational模块以及编写的HelloWorld.java,快捷键是Ctrl+K
然后编写提交说明,用于描述此次的代码变更。再点击Commit and Push 就可以提交到本地仓库以及远程的feature-jdk分支
推送提交时默认选择的是和本地分支相同名的远程分支feature-jdk,点击右下角的Push就可以推送到远程的jdk-feature分支
然后可以在GitHub对应的项目仓库中看到提交通知
点击2branches可以看到所有的分支信息
当点击提交人的名字,可以看到所有的提交记录
在IDEA的git视图中也可以查看本地和远程的提交信息
IDEA常用插件
首先了解下IDEA插件是如何安装的
在IDEA的设置(ctrl+alt+s)中搜索Plugins, 然后找到Marketplace
这里以Git插件GitToolBox为例,直接在Marketplace中搜索GitToolBox后点击Install即可安装
安装时会弹出如下提示信息,点击同意即可
插件安装完成后需要重启,重启后会在项目模块名看到项目的分支信息
其他已安装的IDEA插件
- Add to gitignore
- Alibaba Java Coding Guidelines 阿里编码规约
- Grep Console
- Maven Helper
- SequenceDiagram 时序图
- Statistic 统计代码
- Translation 翻译
- VIsualVM Launcher JVM启动器
目前只能用到Statistic统计代码,其他的插件以及IDEA的其他更多功能将会随着项目的迭代继续介绍。