【Maven04】Maven关联Idea

1 Idea配置本地Maven

打开Idea的配置界面:

进行配置:

2 Idea创建Maven项目

新建项目:

选择Maven项目:

  • 此处暂时不通过模板创建,直接点击next

配置项目名称和坐标:

  • GroupId:项目标识,一般为域名倒置;

  • ArtifactId:项目名;

  • Version:版本,使用默认即可;

GroupIdArtifactIdVersion 组成的GAV坐标可以唯一确定一个项目,点击Finish即可完成创建。

3 Maven项目结构

Maven项目的一大特点就是其项目的目录结构是统一的

除此以外,在项目中建包、建类、执行都与普通项目无异:

4 pom.xml

4.1 概念

pom的全称是Project Object Model,即项目对象模型,一个pom文件就是Maven项目的描述文件(配置文件),可以看到,在初始的pom文件中就清晰地描述了本Maven项目的GAV坐标:

<?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.jackqiang</groupId>
    <artifactId>MavenPro001</artifactId>
    <version>1.0-SNAPSHOT</version>


</project>

4.2 配置打包方式

如果是Java项目则配置为jar、如果是web项目则配置为war:

<packaging>war</packaging>

4.3 配置需要的依赖

将需要的依赖的GAV坐标填入pom.xml就会自动引入对应的依赖,删除则会自动删除对应的依赖。

例如需要导入commons-io 的依赖,在https://mvnrepository.com/中直接搜索即可:

点击进入,可以看到会有很多的版本,选择需要的即可:

将Maven tab中的GAV坐标复制到项目中的pom.xml即可:

pom.xml:

<dependencies>
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
</dependencies>

等待Maven下载,下载完毕即可看到依赖已经被导入了:

 

在侧边的Maven标签也可以看到:

5 创建Web项目

5.1 修改打包方式

<packaging>war</packaging>

5.2 引入web相关依赖

<dependencies>
    <!-- web项目的编译环境 -->
    <dependency>
        <!-- jstl 支持 -->
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <!-- servlet编译环境 -->
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <!-- jsp编译环境 -->
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

5.3 创建webapp目录

按照Maven规则,创建webapp 目录及web.xml 文件:

其中web.xml 文件模板如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 这是一个空白的web.xml文件模板 -->

</web-app>

5.4 编写Servlet

编写一个简单的Servlet和JSP界面进行测试:

Servlet:

@WebServlet("/test")
public class SomeServlet extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("in some service");
        req.getRequestDispatcher("/index.jsp").forward(req,res);
    }
}

JSP:

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <span style="color: red"> Hello World</span>
</body>
</html>

5.5 部署web项目

新增一个本地的Tomcat服务器:

新增完毕后先配置一些基本信息:

其中步骤①配置好本地安装Tomcat的路径,步骤②、步骤③都可以省略。

然后配置部署相关信息:

选择第二个 war_exploded:

方便起见,修改一下部署名:

5.6 启动web项目

点击小三角启动即可:

可以看到,项目已经成功启动:

在浏览器输入http://localhost:8080/MavenPro001/test 即可访问到定义的Servlet:

并且控制台也有输出:

6 依赖的生命周期

依赖的生命周期是指jar包生效的时间段,Maven项目中的依赖可以通过<scope>标签进行生命周期管理:

<dependency>
    <!-- jsp编译环境 -->
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

<scope>标签可以填写的值有:

  • compile:默认值,表示依赖存在于所有阶段(编译、运行、打包、测试);

  • provided:表示依赖在编译时需要,运行时不需要,期望使用者(如JDK、Tomcat容器)在允许阶段提供;

  • runtime:表示依赖只在运行阶段需要;

  • test:表示依赖只在测试阶段需要;

  • system:表示Maven不会在仓库中查找对应的依赖,会在本地磁盘目录中查找。

 

 

版权声明:
作者:jackqiang
链接:http://www.jackqiang.com/framework/develop-tools/maven/2032/with_idea/
来源:JackQiang's
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录