创建普通 Java 项目

1、首次新建一个项目

如果是首次使用,在这个界面可以点击 Create New Project ,创建一个新项目。

选择Java,然后选好 JDK 的位置,接着点击下一步 Next。

接下来不选择模板创建,直接点下一步,然后填写上项目名和项目保存的地址。

会提示目录不存在,直接点击OK创建。

这样一个Java 项目就建好了。

2、再次新建一个项目

如果想要再次新建一个项目,可以在 File ---> New ---> Project... 打开了新建项目的窗口,选择相应的项目,不过第二次就不需要选择JDK了,IDEA已经为你默认选择了上次的JDK。

选择新建后,接着会提示你新项目是要在当前窗口显示还是新开一个窗口显示,如果选择当前窗口显示,就会覆盖当前项目,因为IDEA一个窗口只显示一个项目。

3、再次打开一个项目

(1)如果想要再次打开一个项目,可以 File ---> Open... 然后选择你的项目,直接打开就行。

(2)也可以选择 File---> Open Recent ,选择打开一个最近打开过的项目。

界面按钮功能说明

1、运行代码按钮

比如写了个main方法,运行的话直接点击左边的绿色三角标志:

可以选择直接运行,也可以Debug运行,还可以对代码覆盖率进行测试(第三项这个不是太明白)。

2、侧边栏各功能窗口的开关控制

IDEA 界面左下角有一个控制各个界面开关的按钮

这个按钮点击可以控制各个侧边栏的开关,侧边栏里面有各个窗口的名称和对应的数字,使用 ALT + 数字 就能实现相应窗口的开关。

比如

或者鼠标直接放该按钮上去可以看到相应的窗口列表,点击也可进行相应窗口的开关操作。

3、项目窗口里的四个按钮

(1)修改项目包结构

通过Project窗口的一个小齿轮,可以选择是否隐藏空包来控制空包的合并显示还是展开显示

类似于eclipse中的这个功能。

(2)显示项目中文件位置

这个按钮能显示当前类或者文件在项目结构中的位置。类似于eclipse中的

(3)收起项目结构

(4)收起项目窗口

创建 Java Web 项目

File ---> New ---> Project... 打开了新建项目的窗口。

通过 Java 或者 Java Enterprise 都可以创建 Java Web 项目。如下图所示:

填写上你的项目名称就可以了。

接着会提示你新项目是要在当前窗口显示还是新开一个窗口显示,同样选择新开一个窗口。

建好后的项目结构:

配置 Tomcat 服务器

有两个地方可以配置,如下图所示:

接下来点击 + 号,新建一个 本地的 Tomcat。

上图说的热部署只是静态资源的热部署,jsp之类的,如果想要修改class也实现热部署,需要把那两个选项设置为:“Update classes and resources”,不过不建议这么做,改动太频繁的话部署会出问题。

Application server 的 Configure 如下图所示:

接着设置部署的项目,在 Deployment 中点击 + 号,然后点击 Artifact... ,添加项目。

注意:Application context 选项为上下文根目录,也就是访问的时候的根目录,一般这里可以设置成 / ,这样访问的时候就不需要带上项目名(也就是这里指定的java_web_01_war_exploded)了。

接下来就会在 Application Servers 的窗口中看到配置好的 tomcat 以及部署好的项目。左侧的两个绿色的按钮分别是启动和DeBug启动。

接下来启动一下,启动成功,如下图所示:

如果部署出错,可以检查下Tomcat日志,级别默认是waring,修改成all就能看到所有日志了。

访问路径:http://localhost:8080/java_web_01_war_exploded/

自动会访问 index.jsp。

创建 Maven 项目

同样也是 File ---> New ---> Project... 打开了新建项目的窗口。

这里我们还是通过模板快速创建 Maven 项目,和 eclipse 的类似。

接下来我们填写好图中所示的三项内容。其中 ArtifactId 是坐标地址,一般默认是项目名。

接下来是选择maven,可以使用idea自带的,也可以使用我们自己安装的,一般都是使用我们自己安装的maven。

这里填好项目名,和上面的 ArtifactId 相比上了一个“-”,一般要设置相同,可以自己修改下。

接下来还是会询问你新项目是要在当前窗口显示还是新开一个窗口显示,同样选择新开一个窗口。

接下来Idea会给我们按照模板创建 maven 项目,同时右下角会有一个小弹窗。我们选择自动导入。

建好后的maven项目结构如下所示:

这时候会发现缺少resources目录,main 右键添加 Directory ,添加 resources 目录。

添加完后需要在 resources 上右键,选择将该目录作为资源根目录。

test 目录同样操作添加 resources 目录,然后指定该目录为测试资源的根目录

都完成后项目结构是这样的:

可以在右侧边框中找到 Maven ,点击可以打开窗口,里面有一些maven命令,可以执行相应的操作。

还可以在 DEpendencise 中查看依赖的包。

clean:清除target下的内容

validate:

compile:编译

test:测试

package:打包

verify:

install:

将当前项目打包发布到maven库,比如把maven-01项目发布到maven库,则其他项目就能依赖该项目了,例如可以直接通过在maven-02的pom中添加下面依赖,则就能在maven-02中调用maven-01中的方法了。

   <dependency>
<groupId>com.test.maven</groupId>
<artifactId>maven-01</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

同时可在依赖项中看到该包

site:

deploy:

创建 Junit 测试

(1)新建一个类

package com.test.maven;

public class Beat {
public String getStr() {
return "www";
}
}

在该类中方法上使用 Ctrl + Shift + T 打开测试小窗口。创建一个新的测试。

写上测试类的类名。

就在测试目录里生成了测试类,

package com.test.maven;

import org.junit.Test;

import static org.junit.Assert.*;

public class BeatTest {

    @Test
public void getStr() {
}
}

完整的测试类代码:

package com.test.maven;

import org.junit.Test;

import static org.junit.Assert.*;

public class BeatTest {

    @Test
public void getStr() {
Beat beat = new Beat();
String str1 = beat.getStr();//实际值
String str2 = "ccc";//期望值
assertEquals(str1, str2);//断言
}
}

执行该测试代码,可以使用 junit 执行,也可以使用 maven 提供的 test 命令执行。

(2)下面是 junit 的测试结果,可以看出,代码执行结果出错了。

(3)下面是maven的test命令执行结果。

(4)完整项目结构:

(5)该项目的pom.xml,idea 自动生成的,我没进行修改:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.test.maven</groupId>
<artifactId>maven-01</artifactId>
<version>1.0-SNAPSHOT</version> <name>maven-01</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

可以把多余的东西都删除了,方便配置自己的东西:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.test.maven</groupId>
<artifactId>maven-01</artifactId>
<version>1.0-SNAPSHOT</version> </project>

创建maven web项目

不同之处是这里选择原型项目时选这个。

建完项目之后修改pom文件,删除不用的内容,注意留下一个war包设置,这里和上面普通maven项目的pom不一样。会发现多了个<packaging>war</packaging>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.test.maven</groupId>
<artifactId>maven-03</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging> </project>

接着和上面一样,补全目录结构,在main和test下面分别添加缺少的java和resources目录,然后还需要修改下web.xml的版本。

这样就差不多了。

为了将编译环境修改为指定java版本,需要添加编译插件,修改完的pom如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.test.maven</groupId>
<artifactId>maven-03</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<!--编译插件-->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<!--插件版本-->
<version>3.8.0</version>
<!--编译级别-->
<configuration>
<source>1.8</source>
<target>1.8</target>
<!--编码格式-->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

最终的项目结构:

多模块管理创建项目

使用idea创建项目,每创建一个就需要打开一个窗口,如果项目多了很不方便,打开的窗口太多,不好切换。

所以idea还有一种模式,类似于eclipse的那种,一个窗口显示多个项目。不过idea叫做创建module。

先创建一个空项目,类似于eclipse的一个工作空间,然后在这个空项目(打开的窗口中)创建module,和创建项目的过程一模一样。

然后打开新窗口,在新窗口中创建Module,过程和之前创建项目的过程一模一样,不做重复了。

Maven工程的父子继承

新建一个module(注意是maven java项目),作为父项目。修改pom文件,然后把java目录和test目录都删除,只留一个pom.xml文件(父项目只有个pom)。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.wkcto.maven</groupId>
<artifactId>maven-01</artifactId>
<version>1.0.0</version> <!--Maven父工程的packaging标签值必须为pom-->
<packaging>pom</packaging> </project>

然后再新建一个module(注意是maven java项目,并且名称不要和父项目重复):

建完之后会发现子项目的pom是这样的:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--当前子工程的父工程-->
<parent>
<artifactId>maven-01</artifactId>
<groupId>com.wkcto.maven</groupId>
<version>1.0.0</version>
<relativePath>../maven-01/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>maven-java-01</artifactId> </project>

然后同样方法再新建一个module(注意是maven web项目,并且名称不要和父项目重复),pom如下,多了个war包:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>maven-01</artifactId>
<groupId>com.wkcto.maven</groupId>
<version>1.0.0</version>
<relativePath>../maven-01/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>maven-web-01</artifactId>
<packaging>war</packaging> </project>

最后modules结构如下:

子工程继承父工程的pom文件后,会无条件的继承父工程的依赖。也会无条件继承父工程的插件。

这样就会导致一个问题,那就是会把一些无用的包继承过来,增加了部署风险。

所以增加了一个<dependencyManagement>标签,用于管理依赖,这时在子项目pom中只需要依赖相应的包,不需要写版本号了,版本号直接继承自父项目。也就是相当于父项目只管理了版本号。当然,子项目中也可以定义自己依赖包的版本号,会直接覆盖父项目中定义的该依赖包的版本号。

父项目最后pom结构示例如下,可参考:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.wkcto.maven</groupId>
<artifactId>maven-01</artifactId>
<version>1.0.0</version> <!--Maven父工程的packaging标签值必须为pom-->
<packaging>pom</packaging> <properties>
<!--自定义标签来描述依赖的版本号-->
<junit-versition>4.11</junit-versition>
<mysql.versition>5.1.38</mysql.versition>
</properties> <dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-versition}</version>
<scope>test</scope>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.versition}</version>
</dependency>
</dependencies>
</dependencyManagement> </project>

子项目pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--当前子工程的父工程-->
<parent>
<artifactId>maven-01</artifactId>
<groupId>com.wkcto.maven</groupId>
<version>1.0.0</version>
<relativePath>../maven-01/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>maven-java-01</artifactId> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!--默认继承的是父工程的版本号,当然也可以自己定义-->
</dependency>
</dependencies> </project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>maven-01</artifactId>
<groupId>com.wkcto.maven</groupId>
<version>1.0.0</version>
<relativePath>../maven-01/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>maven-web-01</artifactId>
<packaging>war</packaging> <dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--默认继承的是父工程的版本号,当然也可以自己定义-->
</dependency>
</dependencies> </project>

IDEA中SpringBoot项目使用热部署插件

首先在pom中引入插件依赖

        <!-- SpringBoot开发自动热部署插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

之后项目启动状态下做完修改后,直接选中项目,点击Build,选中项目选项(为的是进行全局编译),项目就会重启的。

IDEA中修改代码警告级别

比如在 Service 中注入一个 Mapper,IDEA工具自己检查会显示红色错误提示:

但是这并不是个错误,只是工具自己的校验提示找不到这个bean,其实不影响程序运行,为了美观一点,我们可以修改下这里的警告级别。

点左边的红色灯泡,下拉选择第一项,然后再选第一项,如图所示:

可以把这处错误修改成警告:

IDEA中添加序列化ID

File ----- Setting 中的检查项设置 Inspections,然后在右侧窗口找到Java下的 Serialization issues,对其中的 Serializable class without 'serialVersionUID' 选项打上对勾,设置为警告。

然后就能看到序列化的类会提示没有序列化ID,可以自动生成

选中类名,Alt + Enter 添加序列化ID。

添加成功。

IntelliJ IDEA 的使用方法总结的更多相关文章

  1. IntelliJ IDEA 2017 注册方法

    本文使用破解方式注册. JetbrainsCrack-2.6.2.jar适用于ideaIU-2017.2.之前版本,若下载的版本较新破解文件可能无法使用,破解时一闪而退. 其中JetbrainsCra ...

  2. intellij idea移动至方法块function()末尾的快捷键

    intellij idea移动至方法块末尾的快捷键: 1. move caret to code block end ctrl+] 2. move caret to code block end wi ...

  3. 使用TortoiseSVN客户端管理IntelliJ IDEA项目的方法

    使用TortoiseSVN客户端管理IntelliJ IDEA项目的方法 今天在打开一个使用SVN管理的项目时,IntelliJ IDEA提示: Can't use Subversion comman ...

  4. IntelliJ IDEA最新破解方法

    IntelliJ IDEA最新破解方法 首先说下,本人使用idea版本是2021.2.3. 一.下载IDEA(推荐从官网下载) 官网地址:https://www.jetbrains.com/idea/ ...

  5. IntelliJ IDEA的main方法,for循环,syso的快捷键

    原文链接:http://blog.csdn.net/tiantiandjava/article/details/42269173 今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有f ...

  6. Intellij Idea免费激活方法(转)

    文章转自  http://blog.csdn.net/u013772876/article/details/70763759 1.填入下面的license server: http://intelli ...

  7. Webstorm/IntelliJ Idea 过期破解方法

    一.Webstorm过期破解方法 如下图,WebStorm过期了,每次都是用30分钟,重新打开. 解决方法: 注册时,在打开的License Activation窗口中选择“License serve ...

  8. Intellij Idea免费激活方法

    填入下面的license server: http://intellij.mandroid.cn/http://idea.imsxm.com/http://idea.iteblog.com/key.p ...

  9. IntelliJ IDEA2017/2018 激活方法 破解补丁激活(亲测可用)(注册码方法以和谐)

    IntelliJ IDEA2017 激活方法(注册码方法以和谐): 搭建自己的授权服务器,对大佬来说也很简单,我作为菜鸟就不说了,网上有教程. 我主要说第二种,现在,直接写入注册码,是不能成功激活的( ...

  10. 最新 IntelliJ Idea 2017 激活方法(转)

    转载地址:http://www.cnblogs.com/suiyueqiannian/p/6754091.html 1. 到网站 http://idea.lanyus.com/ 获取注册码. 2.填入 ...

随机推荐

  1. ROS零门槛学渣教程系列前言

    为什么选择ROS: 1.ROS是开放源码的,在该平台上可以找到非常很多免费开源的代码包,并且这些例程还带wiki说明文档: 2.机器人领域最新的算法直接支持ROS,简单几个步骤就能运行: 3.ROS工 ...

  2. 一篇文章说清楚mysql索引

    索引是什么? 索引是为了加速对表中数据行的检索而创建的一种分散的数据存储结构 为什么要使用索引? 索引能极大的减少数据存储引擎需要需要扫描的数据量: 索引能够把随机IO变为数序IO: 索引能够帮助我们 ...

  3. LINUX中printf与echo的区别

    (1)首先echo是回显,即代表回车显示,是自带换行的:而printf只是打印出来,没有换行(2)echo只是回显没有变量替换功能:printf是有的举例:假如我们定义好变量a='hello worl ...

  4. nova client和nova restfull api区别

    1.nova client封装了获取认证 获取token等东西 2.nova  client提供shell cli方式访问和import client 然后new client的方式访问 区别: 通过 ...

  5. GUI学习之十——QFrame和的QAbstractScrollArea学习总结

    上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类 一.QFrame类 1.描述 QFrame的 ...

  6. 2-1 如何抓不同的接口(手机抓包,web网页抓包)

    举个例子,一个测试和安卓的对话. 测试:Android你这里有个bug Android:这是服务端的bug 测试:是你这里显示的不对 Android:你去看服务端返回数据,他不对,你会不会测试. 从这 ...

  7. amazeui分页

    <link rel="stylesheet" href="../../static/css/manage/amazeui.min.css" /> & ...

  8. lumen框架学习01——引入自定义类和函数

    引入自定义的functions.php文件,首先把functions.php文件放在app的目录下,然后通过根目录的composer.json文件引入,具体操作如下图: 引入类文件也是一样,具体可参考 ...

  9. 如何高效的学习 TensorFlow 代码?

    https://www.zhihu.com/question/41667903 Linux[公共基础]:TensorFlow的主要运行平台之一就是Linux,但是正式版对Windows的支持日趋完善, ...

  10. XBee PRO 900HP远距离无线模块

    XBee PRO S3B也称为XBee-900HP无线模块,它是一款工作在频段900~928MHz之间,基于FHSS跳频技术的远距离无线数传电台核心模块.常用型号如下: 类别 型号 开发套件 XKB9 ...