现代Java服务端开发核心技术之Java基础项目搭建

Posted ittimeline

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现代Java服务端开发核心技术之Java基础项目搭建相关的知识,希望对你有一定的参考价值。

现代Java服务端开发核心技术之Java基础项目搭建

3.1 使用IntelliJ IDEA创建多模块Maven项目

3.1.1 使用IntelliJ IDEA创建Maven父模块javacore

  1. 从Jetbrains Toolbox中启动IntelliJ IDEA
    技术分享图片
    启动界面如下所示
    技术分享图片
  2. 选择Create New Project
    技术分享图片
  3. 创建Maven项目
    选择基于Maven的项目模板
    项目的JDK选择之前安装的JDK11

 

技术分享图片
maven project

如果想要选择其他JDK版本,只需要点击右上角的New菜单,选择其他版本JDK的安装路径即可

 

  1. 设置maven项目的GroupId和ArtifactId
    GroupId是定义当前Maven项目隶属的实际项目
    技术分享图片

  2. 设置项目名称和项目路径
    技术分享图片

  3. 设置自动导入
    该设置会自动导入maven依赖
    技术分享图片

  4. 项目总览

 

技术分享图片
项目总览

 

为了方便后期更好的使用IntelliJ IDEA开发项目,将Toolbar,Tool Buttions,Status Bar,Navigation Bar 都显示出来
技术分享图片

8.删除src目录
由于javacore作为项目的父级目录存在,只是用来定义子模块的通用属性,因此还需要手动删除src目录,后期的java代码都会存放在各个子模块中,最终的项目结构会是如下图所示的结构
技术分享图片

3.1.2 处理不必上传的文件

在创建项目时,IntelliJ IDEA自动添加了它需要的.idea目录和javacore.iml文件,在项目开发中,这些文件都不应该被提交。
这里我们利用之前安装的.gitignore插件实现管理不需要提交到版本控制系统的文件。

首先添加.gitignore模板文件

 

技术分享图片
new git ignore file

 

选择Java的.gitignore文件
技术分享图片

文件内容如下

# Created by .ignore support plugin (hsz.mobi)
### Java template
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

#在IntelliJ IDEA 自动生成的.gitignore文件基础之上添加过滤指定的内容
*.idea/
*.iml
*/target/
*.DS_Store

这时就可以使用IntelliJ IDEA的Hide ignore Files隐藏不需要提交的文件
技术分享图片

隐藏后的项目结构的目录如下所示
技术分享图片

3.1.3 创建README.md文件

该文件是基于markdown语法的文件,后期主要是用于项目说明。
如果想要编写markdown文件,macOS平台上的mweb是个不错的选择,使用它打开位于项目路径的README.md文件便可以轻松编辑markdown文件,即使你不了解markdown语法。
技术分享图片

3.1.4 创建javacore-object子模块

  1. 创建基于maven的子模块
    技术分享图片
    技术分享图片
  2. 设置maven模块的坐标信息
    技术分享图片
  3. 设maven模块的名称以及路径
    技术分享图片
  4. 包含javacore-object模块的javacore项目概览
    技术分享图片

模块目录结构说明

目录说明
src/main/java 源码
src/main/resources 资源,例如配置文件
src/main/test 测试代码

3.1.4 配置父模块

在父模块javacore同级别的pom.xml文件中定义项目依赖和构建配置
首先定义引用第三方类库的版本信息,后期如果想要升级版本,只需要修改<properties><?/properties>中指定的类库版本配置即可。

    <properties>
        <log4j.version>2.11.1</log4j.version>
        <commons-lang3.version>3.8.1</commons-lang3.version>
        <commons-collection4.version>4.2</commons-collection4.version>
        <guava.version>26.0-jre</guava.version>
        <testng.version>6.14.3</testng.version>
    </properties>

然后定义引用第三方组件的依赖,如果不知道某个第三方组件(例如commons-collection4)的Maven坐标信息,可以访问https://mvnrepository.com/ ,然后搜索想要的组件,
技术分享图片
选择对应的版本,如下图所示
技术分享图片
然后查看对应的依赖,将<dependency></dependency>节点的配置信息复制到pom.xml文件的<dependencies></dependencies>节点中即可。
技术分享图片

 <dependencies>
        <!--基于lo4j2的日志-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>

        <!--apache commons组件-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${commons-collection4.version}</version>
        </dependency>

        <!--google guava api-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>

        <!--单元测试框架 testng-->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>${testng.version}</scope>
        </dependency>

    </dependencies>

通过右边的Maven菜单就可以查看到当前项目依赖了哪些组件,如下图所示
技术分享图片

3.2 Java版HelloWorld实现

3.2.1 设置文件模板

在编写代码之前,首先创建一个文件模板,使用快捷键command+,进入Preferences界面,然后搜索File and Code Templates,如下图所示
技术分享图片

修改Class,Annotaiton,Enum默认的模板文件,添加如下内容

/**
  * ${DESCRIPTION}
  * @author liuguanglei [email protected]
  * @create ${DATE}${TIME}
  * @since JDK11
  * @website www.ittimeline.net
  *
*/

它就是使用了Java文档注释,后期创建的每个Java类、接口和枚举都会使用该模板。
如下图所示
技术分享图片

3.2.2 创建包(package)

Java的源文件(以.java结尾)通常都是存放在某个包类,包名通常都是域名倒置,例如com.alibaba,而包实际上就是文件夹。

IntelliJ IDEA创建包,如下图所示
技术分享图片
设置包名
技术分享图片

在Finder中查看包
技术分享图片

3.2.3 创建源文件HelloWorld.java

首先我们使用IntelliJ IDEA在net.ittimline.javacore.object包下面创建一个类
技术分享图片
类名为HelloWorld
技术分享图片
设置该类的描述信息
技术分享图片
HelloWorld.java预览
技术分享图片

3.2.4 HelloWorld实现及其详解

3.2.4.1 HelloWorld实现

HelloWorld通常是用来形容学习一门编程语言的入门程序,如果你能够把HelloWorld独立编写、编译、和运行出来,那么就算是迈向编程的大门了。

Java的HelloWorld原码实现如下所示

package net.ittimeline.javacore.object;

/**
 * 我的第一个Java应用程序
 *
 * @author liuguanglei [email protected]
 * @create 2018/10/14下午12:52
 * @website www.ittimeline.net
 * @since JDK11
 */
public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World With macOS & IntelliJ IDEA");
    }
}

3.2.4.2 HelloWorld详解

package 后面跟包名,表示该类的存放相对目录,后期学习的Java默认权限就是同包访问权限。

Java是面向对象的程序设计语言,一谈到面向对象,就应该想到最基本的类和对象。类是存放程序的最小单元,使用class后面跟上类名即可,例如这里的class HelloWorld,而public是权限访问修饰符,意味着可以在任意地方访问该类。一个源文件中可以定义多个class,但是同一个源文件(例如这里的HelloWorld.java)中,只能有一个类是public的,并且和源文件名相同。

如果想要Java程序能够独立运行的方式之一,就是定义如下固定格式的main方法,该方法会被JVM调用,所有的代码都会从这里开始执行。

在 IntelliJ IDEA 编辑Java源文件时,直接输入psvm,就可以自动生成main方法。

public static void main(String[]args){
    
}

而如果想要看到程序的运行结果,我们一般会将程序的结果输出到控制台,最简单的方式采用如下的代码片段。
在 IntelliJ IDEA 编辑Java源文件时,直接输入sout就可以自动生成打印输出语句

        System.out.println("Hello World With macOS & IntelliJ IDEA");

3.2.5 运行Java程序

在IntelliJ IDEA中运行Java程序,只需要点击如下图所示的按钮即可
技术分享图片
当然还可以使用快捷键Fn+Control+Shift+F10运行Java程序。

当在IntelliJ IDEA中运行Java程序时,实际上会调用JDK提供的两个命令。

  1. javac命令:用于编译Java源文件
  2. java命令:用于解释执行字节码文件
    由于之前已经在PATH环境变量中配置过$JAVA_HOMEin目录,你可以在命令行上运行这两个命令,来编译或者运行Java程序。

后期在编译项目时往往采用Maven或者Gradle工具来实现的,而在编写SpringBoot应用是可以使用java -jar来直接运行java程序。

3.3 使用GitHub管理项目

3.3.1 将项目上传至GitHub

  1. 选择菜单Share Project On GitHub
    技术分享图片

  2. 设置项目的仓库以及描述信息
    技术分享图片

  3. 选择首次提交的内容
    技术分享图片

  4. 访问GitHub,查看首次提交的内容
    技术分享图片

3.3.2 使用IntelliJ IDEA提交代码到GitHub

在企业日常开发中,需要频繁的拉代码,推送代码到Gitlab(可以理解为私有的GitHub),
在IntelliJ IDEA中如何将一个新增的文件提交并推送到GitHub上。

首先创建一个类Welcome.java,源码内容如下所示

package net.ittimeline.javacore.object;

/**
 * Welcome
 * @author liuguanglei [email protected]
 * @create 2018/10/14下午2:31
 * @website www.ittimeline.net
 * @since JDK11
 */
public class Welcome {

    public static void main(String[] args) {
        System.out.println("Welcome Java");
    }
}

当创建文件之后IntelliJ IDEA会提示自动提交代码到缓存区,因为Git在提交代码之前需要先将代码添加到暂缓区,如下图所示
技术分享图片

然后选中项目javacore后,选择Commit Directory菜单,如下图所示
技术分享图片
接着填写提交消息,确认提交文件列表后选择Commit and Push,如下图所示
技术分享图片
在Push代码时,IntelliJ IDEA的Code Analysis能提示警告信息,如下图所示
技术分享图片
最后选择提交的分支,点击右下角的Push便可推送至GitHub,如下图所示
技术分享图片

IntelliJ IDEA本地的Git也可以看到提交记录,如下图所示
技术分享图片
如果你的IntelliJ IDEA没有出现这个菜单,可以通过Fn+Command+F9打开该窗口。

同时IntelliJ IDEA还提供了两个快捷菜单按钮,如下图所示
技术分享图片







































































以上是关于现代Java服务端开发核心技术之Java基础项目搭建的主要内容,如果未能解决你的问题,请参考以下文章

现代Java服务端开发核心技术栈

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之数据库中间件MyCAT入门