1、idea中设置Maven
为了让idea和maven联合起来使用,需要在idea中设置
--idea自身是内置了maven,但是一般不使用内置,理由是使用内置maven修改maven设置时不方便
所以使用自己安装的maven,来覆盖idea中的默认设置。下面设置以让idea指定自己安装的maven位置信息。
可以在两个位置修改:
1、File->Settings:这个位置修改的是针对当前maven工程的设置
2、File->New Projects Settings->Setting For New Projects:在这个位置是针对以后新建的maven工程的设置
--两个位置的设置是一样的,只是前面进入的路口不一样
第二个设置:
File->New Projects Settings->Setting For New Projects
Maven->Runner
设置其中的
VM Options(设置虚拟机参数的):-DarchetypeCatalog=internal
--archetype翻译为骨架,maven项目创建时默认联网下载项目模板,非常慢,上面的设置表示使用内部的模板,不需要下载
JRE:选择JDK1.8安装路径
在当前工程中设置Settings也是和上面一样的
2、普通java工程集成maven
使用idea创建一个普通的maven的java工程
2.1 创建一个空工程,名为idea-maven
2.2 添加一个模块Module
2. 3 选择Maven,选择完毕后下一步
选择Maven选项,其中我们勾选使用模板,所陈列的都是不同种类的模板,不同模板生成的项目都有其对应的目录结构和常用文件,我们要做什么项目就选择什么模板,生成的项目目录文件就非常的适合该项目开发
2.4 编写项目信息,下一步
Parent:不继承其他项目就不填
Name:填写项目名字
Location:一般不做改动
Artifact Coordinattes:项目的坐标三要素,按要求填写
2.5 选择maven的配置信息
发现默认的还是idea内置的,前面在Settings中配置的没起作用,可能是创建的是空工程的原因
2.6 创建成功浏览项目结构,添加模板不足的缺少文件
发现所选择的模板并没有创建resources目录,那么我们自己在main和test目录下分别新建一个resources
--注意:
maven项目中的根据文件目录中存储文件的不同,分为不同种目录:
Sources Root:代表存放的是主程序的java文件
Test Sources Root:表示存放的是测试程序的java文件
Resources Root:代表存放的是主程序的java文件所需的配置资源文件
Test Resources Root:代表存放的是测试程序的java文件所需的配置资源文件
修改文件目录类型:右键文件目录->Mark Directory as->选择相应类型
2.7 查看pom文件
2.8 进行单元测试
删掉主程序和测试程序包下的两个原始java类,src\main\com\studymyself下新建 HelloMaven.java
package com.studymyself;
public class HelloMaven {
public int add(int a,int b){
return a+b;
}
}
src\test\com\studymyself下新建 TestHelloMaven.java
package com.studymyself;
import org.junit.Assert;
import org.junit.Test;
public class TestHelloMaven {
@Test
public void testAdd1(){
System.out.println("测试1:测试方法add,执行testAdd");
HelloMaven helloMaven = new HelloMaven();
int res = helloMaven.add(10,20);
Assert.assertEquals(30,res);
}
@Test
public void testAdd2(){
System.out.println("测试2:测试方法add,执行testAdd2");
HelloMaven helloMaven = new HelloMaven();
int res = helloMaven.add(10,20);
Assert.assertEquals(30,res);
}
}
点击方法前面的运行三角执行该测试方法
2.9 点击右边的Maven选项,弹出Maven窗口
在maven窗口中我们可以执行各种操作,我们点击其中的编译或者打包时,其弹出的控制台是使用的maven自身的而非idea的,在idea中我们设置的都是UTF-8编码,所以文件都是UTF-8,而我们知道大陆下载的maven构建项目默认是以GBK的形式,所以双击test的时候控制台输出的测试语句中文出现乱码。
--还有就是目录结构上方的设置齿轮按钮中Show Exclude Files需要打上勾,才会显示生成的target目录
3、web工程集成maven
3.1 在工程idea-maven中添加新模块,选择maven,其中勾选模板是maven-archetype-webapp
3.2 不继承项目,项目名字idea-maven-javaweb
3.3 检查maven设置是否有误,无误finish,有就改好
3.4 创建好后完整目录如下
发现main中并没有java源文件夹,自己在main目录下创建java,然后定义为源文件夹Sources Root;再创建一个resources文件夹定义为源资源文件夹Resources Root
如果以后还需要测试的话,再在src下新建test,然后创建java和resources,各自定义相应类型。
然后删掉jsp文件,新建一个index.html文件
完整的maven的web项目结构如下:
3.5 打开pom文件
可以看到由于添加的模板不同,是web项目,所以打包被定义为打成war包。
下面的与之前普通java项目的一样。
3.6 添加Tomcat容器
在maven项目中就不需要在Structure Projects中的Dependencies中选择Tomcat的jar包了,直接在中央仓库搜索Tomcat,找对应版本的坐标依赖代码粘贴到pom文件中的依赖标签中就行了,因为搜索出来的很多,不知道哪一个,就直接百度对应博客,出来的更准确。
<!--下面这个是错误的-->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>9.0.41</version>
</dependency>
<!--这个才是正确的-->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>9.0.41</version>
</dependency>
添加进去后,发现版本号是红的,说明没有刷新pom文件加载对应依赖,点击maven出现maven窗口,刷新Reload所有maven工程,如果仓库有的话就可以加载进项目中了,没有就到默认的镜像网址中下载。还有一种方法就是修改了 maven 依赖以后,当前 pom 文件的右上角会出现一个 maven 的小图标,点一下就可以更新依赖了。或者快捷键:Ctrl + Shift + O
添加完web容器依赖后,配置选择容器
Edit Configurations->加号+->Tomcat Server->Local->点击下边Warning右边的fix,选择带有explode的项目
或者这样添加部署项目 Local->Deployment->右边加号->Artifacts->选择带有explode的项目
3.7 在index.html中编写一个超链接,连接到一个Servlet资源类
新建一个Servlet资源类com.studymyself.controller.HelloServlet
package com.studymyself.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("test/html;charset=utf-8");
response.getWriter().print("大家好,这是一个使用Maven构建工具创建的web项目");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome Page</title>
</head>
<body>
<h1>欢迎光临!</h1>
<a href="/idea-maven-web/helloMaven">点击进入</a>
</body>
</html>
我们在maven窗口打开该web项目的生命周期,双击package,maven帮我们将项目打包成一个war包:
idea-maven-javaweb.war,我们从硬盘中将该war文件,改名为myweb.war,放进Tomcat目录中的webapps目录中,然后在命令窗口setup启动服务器,这样这个项目就开始发挥功能了,我们在浏览器中输入http://localhost:8080/myweb/回车,就能到该项目的欢迎页面了。这个war包就是我们的最终成品,交给客户的。
--导入maven项目模块
File->New->Module From Existing Sources->选择项目,ok->选择Import module from external model,选择Maven项目,ok->Apply
也可以在Project Structure的ProjectSettings的Modules中点击加号选择新建还是导入,导入后选中项目,在右边的Dependencies属性中选择Module SDK为JDK1.8,然后应用。