Maven学习笔记

Posted 小智RE0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven学习笔记相关的知识,希望对你有一定的参考价值。

1.什么是Maven,为什么学习Maven

maven是Apache提供的开源的项目构建工具;

在之前没有使用maven之前,搭建一个项目,就得去WEB-INF 下创建lib目录,然后导入jar包文件;
之前做项目时,用的jar包并不多,管理起来也比较方便;
但是实际开发的项目的话;需要的jar包数量会很多;jar包之间可能还有包含关系;

使用Maven的话,可以更好地管理项目中的jar包;项目编译,打包,测试…

Maven仓库(放jar包的区域)
分为三个===>
中央仓库(只有一个 apache创建的),
镜像仓库(可以有多个,对中央仓库的备份)
本地仓库(在自己本地电脑上创建的)

安装,以及配置过程,参考之前的安装过程—>(Windows系统)安装Maven以及环境配置
本地仓库,镜像仓库什么的和之前一样,直接配置即可;

2.新建一个maven项目;

首先点击configure设置;找到Settings设置;点击进入

然后;找到Build,Execution,Deployment;找到其下的Build Tools ;找到Maven工具的配置;
设置这三个位置的地址;然后点击右下角的apply;最后确认无误点击OK

创建时,和之前不一样,之前是直接创建maven项目;
现在直接创建JavaEE项目

若要创建WEB项目,点击即可;不创建的话可以先不选;

了解这几个名字的配置

打开项目

OK,打开项目,基本结构就是这样的

来看看核心配置文件pom.xml
这个用maven的话,它就是配置项目需要的jar包在仓库中的坐标即可,就是说引用过来;
而jar包实际上还在仓库中;

注意servlet-api的jar包在引用时,为它设置了作用域scopeprovided;一会儿打包的时候,可以看看,他是不是没有被打包

<?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>

    <!--项目的基本信息-->
    <!--项目打包后的坐标 g,a,v,-->
    <groupId>com.xiaozhi</groupId>
    <artifactId>studymaven02</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--项目名-->
    <name>studymaven02</name>
    <!--packaging,默认是jar类型的-->
    <!--由于创建的是web项目;打包后就是war类型的-->
    <packaging>war</packaging>

    <!--配置的属性信息-->
    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <!--编译编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <!--相关jar包在仓库中的坐标-->
    <dependencies>
        <!--gson依赖-->
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <!--组ID,在仓库的路径地址-->
            <groupId>com.google.code.gson</groupId>
            <!--构建名(等同于项目名)-->
            <artifactId>gson</artifactId>
            <!--版本号-->
            <version>2.8.6</version>
            <!--这里还有个属性 type;默认是jar-->
            <type>jar</type>
            <!--scope 依赖项的作用范围,默认是 compile,会被打包到war包中-->
            <scope>compile</scope>
        </dependency>

        <!--servlet依赖-->
        <dependency>
            <!--组ID,在仓库的路径地址-->
            <groupId>javax.servlet</groupId>
            <!--构建名(等同于项目名)-->
            <artifactId>servlet-api</artifactId>
            <!--版本号-->
            <version>2.5</version>
            <!--scope 依赖项的作用范围,默认是 compile。-->
            <!--作用域默认为 compile 会被打包到war包下;设置为provide就不会被打包-->
            <scope>provided</scope>
        </dependency>

        <!--文件上传下载-->
        <dependency>
            <!--组ID,在仓库的路径地址-->
            <groupId>commons-fileupload</groupId>
            <!--构建名(等同于项目名)-->
            <artifactId>commons-fileupload</artifactId>
            <!--版本号-->
            <version>1.3.1</version>
        </dependency>
    </dependencies>

    <build>
        <!--插件配置-->
        <plugins>
            <!--这里自动生成了一个用于项目打包的插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.0</version>
            </plugin>
        </plugins>
    </build>
</project>

可以看到commons-fileupload这个包,虽然只是引用了一个坐标,但是它里面还包含了一个包

实际上这些包已经下载到本地仓库了;比如说commons-fileupload的包;

若需要找jar包依赖;直接去官网maven仓库查找即可–>maven仓库


3.Maven命令的简单使用

在集成开发工具IDEA中,直接在右边的maven管理,点击M符号即可

对于目前的初步开发,熟悉这几个命令的操作即可;

(1)首先是项目编译命令;

mvn compile

编译结束;项目生成了一个target文件夹

(2)清除命令

mvn clean

执行后,编译的target目录就消失了

(3)项目打包命令

mvn package

注意打包后,出现一了war类型的压缩包

OK,去本机找到这个包;

诶,注意到了没有;servlet的包没有被打包进来;
刚才给servlet-apijar包的依赖用的作用域是provided

<!--作用域默认为 compile 会被打包到war包下;设置为provide就不会被打包-->
<scope>provided</scope>

(4) 将项目安装到本地仓库

mvn install

去找自己电脑本机的仓库;就能找到这个项目了;


但是,一般这样将项目直接放到本地仓库的方式;
一般都是将比较多的工具类公共代码放到仓库中,用的时候,用jar依赖坐标引用即可;

比如说;新建一个普通项目,就叫mydateutils把,里面放入自己写的日期工具类;

工具类DateUtil

package com.xiaozhire0;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author by CSDN@小智RE0
 * @date 2021-10-24 20:00
 */
public class DateUtil {

    /**
     * 字符串转日期;
     * @param s 日期字符串
     * @param parse 指定的格式
     * @return 返回日期
     */
    public static Date StringtoDate(String s, String parse )  {
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        try {
            //返回Date类型;
            //这里需要进行异常处理;
            return sdf.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 指定的日期转字符串格式;
     * @param date 日期
     * @param parse 指定的格式
     * @return 返回日期字符串
     */
    public static String DatetoString(Date date,String parse ){
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        return sdf.format(date);

    }

    /**
     * 返回当前日期转字符串格式
     * @param parse 解析格式
     * @return 返回日期字符串
     */
    public static String DatetoString(String parse ){
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        //创建当前日期对象;
        Date date=new Date();
        //返回字符串形式
        return sdf.format(date);
    }
}

使用 mvn install 命令

这时;在本地仓库的地址就能找到;自己写的这个工具类生成的jar包了;

OK,去试试在项目中使用它

<!--自己写的日期工具类依赖-->
<dependency>
    <groupId>com.xiaozhi</groupId>
    <artifactId>mydateutils</artifactId>
    <version>5.2.7</version>
</dependency>

成功引入

当然,还可以去使用工具类DateUtil;

package com.lzq.demo;

import com.xiaozhire0.DateUtil;

import java.util.Date;

/**
 * @author by CSDN@小智RE0
 * @date 2021-10-24 20:22
 */
public class Demo {
    public static void main(String[] args) {
        //使用导入的日期工具类;
        String s = DateUtil.DatetoString(new Date(), "yyyy-MM-dd hh:mm:ss");
        System.out.println(s);
    }
}

运行结果

当然,还可以点进"源码";哈哈哈


(5)将自己找到的jar包部署到本地仓库;

有时候,可能你使用的那个jar包,它就比较特殊啊;
连maven中央仓库里面都找不到他的maven依赖;
但是,你做的那个项目还必须的使用它;
总不能直接去本地仓库自己创建文件夹去放进去吧;
这就比较麻烦了

还有啊,找个本地仓库的jar包的存放位置看看,就会发现,除了jar包,它还有别的配置文件;

那么,这时就得用用这个命令了;

mvn install:install-file
-DgroupId=组名ID,也就是路径(com.taobao) 
-DartifactId=构建名(druid)
 -Dversion=版本号(1.0) 
 -Dpackaging=包的类型(jar ) 
 -Dfile=jar包的完整路径

来试试吧;

比如说,我现在就有个特殊的jar包;我给它起名叫ourmysql

打开cmd窗口,用管理员去执行命令;

mvn install:install-file -DgroupId=com.xiaozhi -DartifactId=ourmysql -Dversion=5.2.7 -Dpackaging=jar -Dfile=F:/ourmysql/ourmysql.jar

部署成功

OK,去自己的电脑之前配置的本地仓库看看;我的ourmysql已经部署上来了;

也有自动生成的配置文件

还可以使用

以上是关于Maven学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Maven学习笔记

maven 学习笔记--简介

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

Maven学习笔记

hadoop 学习笔记-2wordcount 完整实例

学习笔记依赖管理maven学习笔记