为了账号安全,请及时绑定邮箱和手机立即绑定

Maven使用相关--田小江

标签:
Java
  1. 下载maven并解压。解压后如下:
    图片描述

  2. 配置环境变量。(类似于jdk配置)
    计算机右键-->属性-->高级系统设置-->环境变量-->系统变量-->新建
    变量名:M2_HOME,变量值为maven解压的地址(千万不要顺手在后面加分号)
    图片描述
    在系统变量列表中找到系统变量path,在后面追加%MAVEN_HOME%\bin(注意前面有没有分号,没有分号加一个分号)
  3. 测试配置是否成功。用win+R键打开dos命令行,输入mvn -version。显示maven信息,则配置成功。
    图片描述

maven的conf文件夹下setting.xml

图片描述


Maven的配置文件pom.xml
pom.xml是maven的主要配置文件
基本:

<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/maven-v4_0_0.xsd">
  <!-- 版本号应该为4.0.0,因为这是当前仅有的可以被Maven2&3同时支持的POM版本,它是必须的 -->
  <modelVersion>4.0.0</modelVersion>
  <!-- 基本设置 -->
  <!-- 之前创建项目时候写的groupId,项目属于哪个组 -->
  <groupId>test</groupId>
  <!-- 之前创建项目时候写的artifactId,在该项目组中的唯一ID -->
  <artifactId>Test_jj.tian</artifactId>
  <!-- 提供组件的类型,如果packing不指定,则默认组件类型为jar,组件目前可选值有:war、ejb、pom、ear、 rar、 par、jar、maven-plugin -->
  <packaging>war</packaging>
  <!--版本号,它和groupId,artifactId一起,就像一个坐标,标记了仓库中的特定位置-->
  <version>0.0.1-SNAPSHOT</version>
  <!-- 项目的名称, Maven产生的文档用 --> 
  <name>Test_jj.tian Maven Webapp</name>
  <!-- 项目主页的URL, Maven产生的文档用 --> 
  <url>http://maven.apache.org</url>
  <!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,
         就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的
         索引页文件,而不是调整这里的文档。 --> 
  <description> A maven project to study maven. </description> 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <!-- 用于控制依赖的范围,有以下几种范围(test:仅用于测试;compile:默认值,编译依赖范围,对于所有的classpath都是有效的;) -->
      <scope>test</scope>
    </dependency>
  </dependencies>
  <!-- 构建过程的设置 -->
  <build>
    <finalName>Test_jj.tian</finalName>
  </build>
</project>

Maven的一个有力的地方就在于对项目关联的处理;包括依赖、继承和聚合(多模块项目)。

1.继承。所有POM都继承于superPOM

    <parent> 
        <!-- 被继承的父项目的groupId--> 
        <groupId>org.codehaus.mojo</groupId> 
        <!-- 被继承的父项目的构件标识符 -->
        <artifactId>my-parent</artifactId>my-parent
        <!-- 被继承的父项目的版本 --> 
        <version>2.0</version>
        <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。
             Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),
             然后在本地仓库,最后在远程仓库寻找父项目的pom。 --> 
        <relativePath>../my-parent/pom.xml</relativePath> 
    </parent> 

2.依赖,一个<dependency>元素定义一个依赖。

<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。 --> 
  <dependencies>
    <dependency>
    <!-- 依赖的groupId -->
      <groupId>junit</groupId>
      <!-- 依赖的artifactId -->
      <artifactId>junit</artifactId>
      <!-- 依赖的版本号 -->
      <version>3.8.1</version>
      <!-- 依赖的类型 -->
      <type>war</type>
      <!-- 依赖的分类器,使用不多,不了解 -->
      <classifier></classifier>
      <!-- 用于控制依赖的范围,有以下几种范围(test:仅用于测试;compile:默认值,编译依赖范围,对于所有的classpath都是有效的; provided:仅对编译和测试classpath有效;runtime:编译时不需要,尽在运行时需要; system:和provided类似,只是你需要提供JAR,组件不再在仓库中查找。) -->
      <scope>test</scope>
      <!-- 当scop配置为system时使用,其他情况下不使用 -->
      <systemPath></systemPath> 
      <!-- 该配置告诉Maven你不想包含的该依赖的依赖(依赖传递的依赖)。 也可以使用通配符(*),表示排除所有传递的依赖。此元素主要用于解决版本冲突问题。 --> 
      <exclusions> 
        <exclusion> 
            <artifactId>spring-core</artifactId> 
            <groupId>org.springframework</groupId> 
        </exclusion> 
      </exclusions> 
      <!-- 可选依赖,设置为true,标识该依赖只对该项目有效,如果其他项目依赖该项目,该依赖将不会传递 -->
      <optional>true</optional> 
    </dependency>
  </dependencies>

3.聚合
目前没理解,理解了再补充上。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消