Maven入门

Maven是Apache旗下一款面向java项目的管理工具,主要用来自动下载工具包、自动管理工具包之间依赖关系和自动管理工具包版本,Maven官网Maven官网

  1. Maven核心概念
  2. Maven目录结构
  3. Maven命令
  4. Maven应用
    4.1 Maven安装和配置
    4.2 IDEA 中配置Maven
    4.3 使用Maven创建普通的Java项目和web项目
  5. Pom文件常用属性

1. Maven核心概念

1) POM:项目对象模型(Project object Model,POM)是一个XML格式的文件, 项目广义上来讲是关于源码、配置文件和不同角色开发人员等一系列元素的结合,在Maven项目中,一个POM文件就是一个项目,POM文件中包含了项目的所有配置信息和依赖资源。
2)约定的目录结构:Maven目录结构和文件存放位置都是确定。
3)坐标:用来唯一标识项目。
4)依赖管理:管理项目中使用的jar包。
5)仓库管理:存放项目中依赖第三方库的地方。
6)生命周期:maven构建项目的整个过程。
7)插件:执行Maven每个生命阶段都是通过Maven插件实现的,例如clean是使用Maven-clean-plugin插件实现。
8)继承:一个Maven项目继承另外一个Maven项目中的依赖,当多个项目都需要依赖一些共同的工具包时,为了方便管理,通常将这些项目中共同的依赖抽象到父项目中。

2. Maven目录结构

Maven中遵循一种约定俗成的目录结构。
src
  main
     java/存放程序源文件
    resources/存放程序配置文件和资源

  test
    java/存放程序测试源文件,测试类的命名方式必须为XxxTest.java,测试方法名为void xxxTest(),必须不能有返回值。
    resources/测试程序配置文件和资源
pom.xml 项目开发打包环境、jar文件坐标

3. Maven命令

  1. compile
    编译程序,会在src 创建target目录,将编译好的class文件放在target/classes目录下。

  2. Test
    测试test/java/目录下所有测试类中的所有测试方法。

  3. clear
    删除target目录。

  4. package
    项目打包成jar包或者war包,放在target目录下,包名格式为groupId.artifactId.version。

  5. Install
    复制打包好的程序到本地仓库repository。

  6. deploy
    将打包好的项目放到tomcat的webapps目录下。

4. Maven应用

4.1 Maven安装和配置

1)下载Maven:https://maven.apache.org/download.cgi,本次安装下载了apache-maven-3.8.1。
2)解压Maven到指定目录,
        子目录conf : Maven本身配置文件settings.xml。
3)修改资源仓库repository的网址,默认为中央仓库,修改为国内的阿里中央仓库,在settings.xml中加入下面的配置信息 。

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>       
  </mirror>

repository: 本地仓库,所有下载jar包在本机存储位置。
        远程仓库:
                中央仓库:Maven提供的最权威的仓库。
                中央仓库镜像:中央仓库的镜像,在各个州和重要城市都有。
                私服:一些公司获取组织内部创建的仓库,一般只有内网才能访问。

4)配置Maven环境变量:
创建环境变量MVM_HOME: D:\apache-maven-3.8.1。
再将变量MVM_HOME加入到path中%MVN_HOME%\bin。
5)验证maven配置成功:mvn -v
在这里插入图片描述

4.2 IDEA 中配置Maven

File-》settings找到maven配置页。(只对本项目有效)
File-》New Projects Settings-》Settings for New Projects找到Maven配置页。(对后面创建的Maven项目都有效)
在这里插入图片描述
Note:在Maven配置文件settings.xml中修改Local repository的存放路径。

<localRepository>D:\apache-maven-3.8.1\repository</localRepository>

Note:有些IDEA编辑器需要重启后配置才能生效,不同版本IDEA设置有少许不同。

4.3 使用Maven创建普通的Java项目和web项目

(1)创建普通的java项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Note:不同版本的Maven版本创建出来的项目目录结构可能有所不同,在该版本中main和test目录下面都没有resources目录。
(2) 创建java web项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建的web项目目录结构如下:
在这里插入图片描述

5 Pom文件常用属性

settings.xml是全局级别的配置文件,pom.xml是全局级别的配置文件。
2.POM文件解析
1) 项目坐标:用来唯一标识一个项目
org.codehaus.mojo
项目名
my-project
版本号
1.0
坐标可以不要求三个都写,一个或者两个也可以。
2) packaging:项目打包后的扩展名,默认为jar,web是war
可以选择不写,默认就是jar。
3) dependencies和dependency,引入第三方jar包
dependencies可以包含多个dependency,每个dependency确定一个jar包。
4) properties用来定义一些配置属性,例如项目编译时版本、项目文件编码方式,还可以设置一些全局变量,在pom总通过${标签名}进行引用,可以方便多个dependency引用同一个版本时。
5) Scope:范围,在dependency中,值为test时,jar包只在测试时生效;值为compile时,在编译、测试、打包、部署都会生效;值为provider时,jar包只在编译和测试生效,在打包和部署里面不会生效,也即jar包不会被一起打包。
6) Build:

<build>    
       <resources>  
        <resource>  
            <filtering>true</filtering>  
  
            <!--描述存放资源的目录,该路径相对POM路径 -->  
            <directory>src/main/resources</directory>  
  
            <!--包含的模式列表 -->  
            <includes>  
                <include>**/*.properties</include>  
                <include>**/*.xml</include>  
            </includes>  
  
            <!--排除的模式列表 如果<include><exclude>划定的范围存在冲突,以<exclude>为准 -->  
            <excludes>  
                <exclude>jdbc.properties</exclude>  
            </excludes>  
        </resource>  
    </resources>  
</build>
默认没有配置resources时,会将src/main/resources目录下的文件拷贝到target/classess目录下,对于src/main/java目录下的非java文件不处理;配置了resources之后,还会选择性的将src/main/java下的非java文件拷贝到target目录下。

reference

[1] https://www.bilibili.com/video/BV1dp4y1Q7Hf?from=search&seid=3024120190965355920

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值