Maven学习笔记
Posted 小智RE0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven学习笔记相关的知识,希望对你有一定的参考价值。
ml
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包在引用时,为它设置了作用域scope
为provided
;一会儿打包的时候,可以看看,他是不是没有被打包
<?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-api
jar包的依赖用的作用域是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学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段