Maven学习记录及简单实用

1.什么是maven

Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统,和用来运行定义在生命周期阶段中插件目标的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

maven仓库分为本地仓库和中央仓库
通过maven可以把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。

第一次执行"mvn compile"和"mvn clean"这两个命令时,Maven会去中央仓库下载需要的jar包,而第二次执行这两个命令时,由于所需的jar包已经在本地的仓库中存储,所以就可以直接拿来用了,这样就省去了去中央仓库下载jar包的时间。所以通常刚开始用maven的时候第二次的时间会很快第一次很慢

2.pom.xml文件

pom.xml的基本信息(坐标)包括modelVersion、groupId、artifactId、version、packaging分别是maven模型的版本、组织的id、项目名称、项目的版本号、项目打包的类型

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

</project>

除此之外还有依赖,用于导入本地仓库的依赖管理jar包
dependency和dependencies,相当于import

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

properties:设置属性
build:maven在进行项目构建的配置信息,例如设置预编译的jdk版本号

3.maven的生命周期

生命周期:清理、编译、测试、打包、安装、部署
maven编译:
在pom.xml所在的目录打开命令提示符
mvn clean:清理原来编译的内容
mvn compile:编译主程序
mvn test-compile:编译测试程序
mvn package:打包成jar

4.使用模板创建Java SE Maven项目

在此之前我们需要先配置maven的本地仓库,如果不事先配置本地仓库的话,idea默认的仓库是在c盘的,file->settings,settings和othersettings两个地方都需要更改。
在这里插入图片描述在这里插入图片描述

新建一个空的Java Se项目,然后new module创建模块是选择maven-archetype-quickstart,然后下一步的话,我当前用的是idea2019.1.3,然后这里输入你maven的坐标就好了,别的idea版本可能不一样,但是万变不离其中吧。
在这里插入图片描述
在这里插入图片描述

单击ok后会出现以下窗口在这里插入图片描述
意思就是maven项目需要被导入,我们点后面那个auto自动导入。然后他就会自动导入资源
在这里插入图片描述
在这里插入图片描述
然后导入完成就会得到这样的一个目录结构,并且你的xml文件应该是有了很多插件和依赖。

5.Maven窗口的使用

在idea的右边有一个maven project的窗口,在Lifecycle里面有很多命令,也对应了maven生命周期里面的命令。例如clean == mvn clean , compile == mvn compile. dependencies下面存放当前maven的依赖。
在这里插入图片描述

6.maven创建web工程

选择maven-archetype-webapp然后一路next,finish
在这里插入图片描述
然后在pom.xml中可以引入servlet和jsp的依赖,写一个HelloServlet,然后在index.jsp里面写一个链接用到HelloServlet,运行服务器就能验证了

<!--添加servlet和jsp的依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
@WebServlet("、hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.println("Hello Maven");
        writer.flush();
        writer.close();
    }
}

在这里插入图片描述
在这里插入图片描述
从地址栏的变化就可以知道我们这个web是部署成功辽。然后实际项目中可以从右边直接打包成war文件给用户。

7.依赖范围

依赖范围在pom.xml中用scope表示,scope的值有compile、test、provided
scope表示依赖使用的范围,也就是maven构建项目在哪些阶段起作用,默认compile
maven的创建有清理、编译、测试、打包、安装、部署。其中compile是全部、test仅测试、provided用于编译和测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值