Maven的安装和使用(基础)

Maven核心概念

Maven采用“约定优于配置”(CoC)的原则,只要将项目的源文件按Maven要求的规范组织,并提供pom.xml文件,开发者就能使用Maven来编译项目、运行程序,甚至运行测试用例、打包部署项目。以下约定:

  • 源代码应该位于/src/main/java路径下
  • 资源文件应该位于/src/main/resources路径下
  • 测试代码应该位于/src/test路径下
  • 编译生成的class文件应该位于/target/classes路径下
  • 打包后的jar文件在/target下
    当然maven也允许自定义默认值改变约定。

下载和安装Maven

登录maven站点,下载zip压缩包
将压缩包解压缩到任意路径

目录解释:

  • bin: 保存可执行命令
  • boot: 类加载器框架加载maven自己 的框架
  • conf: 配置文件目录
  • lib: maven运行时需要的类库
配置环境变量

JAVA_HOME:JDK安装路径
M2_HOME:maven安装路径
path:%M2_HOME%\bin
这里写图片描述
这里写图片描述

检验是否安装成功

通过DOS命令检查一下我们是否安装成功

mvn -v

配置Maven本地仓库

1. 在D:\Program Files\Apache\目录下新建maven-repository文件夹,该目录用作maven的本地库。
2. 打开D:\Program Files\Apache\maven\conf\settings.xml文件,查找下面这行代码:
<localRepository>/path/to/local/repo</localRepository>

localRepository节点默认是被注释掉的,需要把它移到注释之外,然后将localRepository节点的值改为我们在3.1中创建的目录D:\Program Files\Apache\maven-repository。

3. localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。

当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果没有则从远程仓库中获取包,并在本地库中保存。

4. 运行一下DOS命令
mvn help:system

Maven的使用

1、创建一个简单的maven项目
>mvn archetype:generate

第一次执行该命令时,Maven先从网络下载archetype插件,然后通过插件生成一个maven项目
这里写图片描述
黄色部分需要自己定义,其余回车

Choose a number: 6: (直接回车)
Define value for property ‘groupId’: : cnblogs (可暂时先理解成类似package或namespace的名称,通常我们填写组织机构名称缩写)
Define value for property ‘artifactId’: : maven-hello-world (组件名称,可暂时理解成项目名称)
Define value for property ‘version’: 1.0-SNAPSHOT: : (版本号,直接回车,默认1.0-SNAPSHOT)
Define value for property ‘package’: cnblogs: : (打包后的jar文件名,相当于.net中项目最后生成的程序集dll名称)

2、项目目录

├───src
│ ├───main
│ │ └───java
│ │ └───testMaven
│ └───test
│ └───java
│ └───testMaven
└───pom.xml
maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码

3、编译项目
mvn compile

进入项目文件夹内输入命令。首先maven下载compile插件,然后对项目进行编译
这里写图片描述

观察项目目录的变化:多出来的target目录存放编译后的class文件
这里写图片描述
这里写图片描述

4、执行项目
mvn exec:java -Dexec.mainClass="testMaven.App"

这里写图片描述
输出hello world.(-D 后面跟参数)

5、单元测试
mvn clean test

这里写图片描述
clean是是Maven的其中一个生命周期(clean default site),进行任务前进行清理

6、项目打包
mvn clean package

这里写图片描述
运行完后,会在target目录下生成jar包

注:从输出 可以发现,package前,会先执行compile,再执行test,最后才是package打包
这里写图片描述
packing配置为war会打包为war

7、项目部署
mvn clean jboss-as:deploy

就能自动将web项目部署到jboss中(前提是jboss web server已经成功启动),因为刚才我们创建的是一个最基本的maven项目,并非web项目,所以执行这条命令,应该会失败,后面会讲如何在eclipse中用插件部署web项目,这里可以先跳过。

另外:

有时候,我们的项目是一个类库,只是封装一些方法供其它项目引用,对于这种项目,我们可以用 mvn clean install 把生成的jar包,安装到“本地仓库”中,这样本机其它项目需要使用该jar包时,只要在pom里配置依赖项即可,不用把jar包复制到当前项目中。

8、依赖管理
<dependencies>
    <dependency>
      <groupId>junit</groupId>//开发者域名
      <artifactId>junit</artifactId>//制定项目名
      <version>3.8.1</version>//版本号
      <scope>test</scope>//依赖范围
    </dependency>
  </dependencies>
  1. compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
  2. test:测试依赖范围。只对于测试classpath有效
  3. provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
  4. runtime:运行时提供。例如:jdbc驱动
    (junit包scope就是test范围)

排除依赖:

<exclusions.../>
<dependency>
    <groupId>com.ys.b</groupId>
    <artifactId>pro-b</artifactId>
    <version>1.0.1</version>
<!--排除依赖-->
    <exclusions>
        <exclusion>
            <groupId>com.ys.c</groupId>
            <artifactId>pro-c</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入正确依赖 -->
<dependency>
    <groupId>com.ys.c</groupId>
    <artifactId>pro-c</artifactId>
    <version>1.0.0</version>
</dependency>

因为依赖具有传递性,将不需要的依赖排除出去

多模块项目依赖管理中,父pom文件中指定maven依赖jar的version,子pom中不用指定version。这样可以通过parent统一管理maven依赖jar的version。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟林洁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值