Maven基本使用

一、安装

  • 先去官网下载maven(http://maven.apache.org/download.cgi
  • 下载下来解压后如下所示 
  • 配置环境变量 
     
  • 查看配置成功与否 
  • maven配置文件 
  • maven项目目录结构 
  • 使用myeclipse构建maven项目 

  • pom.xml文件

<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> <parent>
<groupId>com.robinliew.foo</groupId>
<artifactId>foo-war</artifactId>
<version>0.0.1</version>
</parent> <!--
maven 的所有构件均通过坐标进行组织和管理。maven 的坐标通过 5 个元素进行定义,其中 groupId、artifactId、version 是必须的,packaging 是可选的(默认为jar),classifier 是不能直接定义的。 groupId组名,主项目标识 定义当前 Maven 项目所属的实际项目,跟 Java 包名类似
artifactId - 工程名,子项目(模块)标识 定义当前 Maven 项目的一个模块,默认情况下,Maven 生成的构件,其文件名会以 artifactId 开头
packaging - 打包方式 定义项目打包方式,如 jar,war,pom,zip ……,默认为 jar。
version - 版本
name - 项目描述名
classifier:定义项目的附属构件。classifier 不能直接定义,通常由附加的插件帮助生成
-->
<groupId>com.robinliew.mavendemo</groupId>
<version>0.0.1</version>
<artifactId>com.robinliew.mavendemo</artifactId>
<packaging>war</packaging>
<name>mavendemo</name>
<description>maven快速入门</description>
<!-- 配置依赖的jar包 ->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies> </project>
  • 依赖详解 

    • 其中依赖范围有如下几种

      • compile:编译依赖范围,默认值。此选项对编译、测试、运行三种 classpath 都有效,如 hibernate-core-3.6.5.Final.jar,表明在编译、测试、运行的时候都需要该依赖
      • test:测试依赖范围。只对测试有效,表明只在测试的时候需要,在编译和运行时将无法使用该类依赖,如 junit;
      • provided:已提供依赖范围。编译和测试有效,运行无效。如 servlet-api ,在项目运行时,tomcat 等容器已经提供,无需 Maven 重复引入;
      • runtime:运行时依赖范围。测试和运行有效,编译无效。如 jdbc 驱动实现,编译时只需接口,测试或运行时才需要具体的 jdbc 驱动实现;
      • system:系统依赖范围。和 provided 依赖范围一致,需要通过 显示指定,且可以引用环境变量;
      • import:导入依赖范围。使用该选项,通常需要 pom,将目标 pom 的 dependencyManagement 配置导入合并到当前 pom 的 dependencyManagement 元素。
    • 依赖传递和依赖范围 
      • 如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和间接引用的Jar包都下载到本地。
    • 依赖冲突 
      • 路径优先(最短路径)
      • 声明优先:引用路径相同时,先在pom.xml中声明的优先
    • 依赖排除
    <exclusions>
    <exclusion>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    </exclusion>
    </exclusions>
  • 创建一个maven工程 
     
    默认配置,点击两次next后 
     
    如果没有显示上面的archetype骨架列表,则需要我们先进行配置,点击configure如下 
     
    远程配置是通过访问http://repo1.maven.org/maven2/archetype-catalog.xml地址进行配置的,由于该文件较大,且访问外国网址速度很慢,可能需要等好一会,下面介绍另一种本地配置方式 
     
    这种方式需要提前下载配置文件通。过浏览器查看http://repo1.maven.org/maven2/archetype-catalog.xml页源码(注意:因为文件较大,网速较慢,请多等一会),复制到本地,命名为archetype-catalog.xml。 
    如果你的myeclipse出现卡顿现象,查看是否报GC overhead limit exceeded的错误,如果是可以通过下面的方式解决 

     
    创建好的maven工程如下所示 
     
    可以看到默认创建的目录结构只有src/main/resources,缺少 src/main/java和src/test/java 。点击该项目后,右击,选择build path–>configure build path。 
     
     
     
    设置完后我们可以查看maven输出目录 

    当然这是可以自己点击edit修改的,没有特殊需求的情况下一般不建议修改。 
     
    此时maven项目的目录结构完整了。

设置 Project Facets,设置部署打包结构,删除测试相关目录 


此时创建一个maven项目完成了。 
- 构建及项目部署 
右键 pom.xml - Run As - Maven -install 
 

二、maven常用的命令

  • 首先通过cmd进入要操作的项目目录 

    • 常用的几种命令

      • mvn compile 编译项目源代码
      • mvn clean 删除 target 目录
      • mvn test 运行测试(运行src/test/java中的测试代码)
      • mvn clean package(组合命令) Maven 自动帮我们完成项目的编译、测试、打包
      • mvn install 效果跟mvn clean package命令一样,且项目被打包发布到了 maven 的仓库,以后其他项目需要依赖到这个项目,就可以通过在 pom.xml 文件中添加依赖来引用。
      • mvn archetype:generate 自动创建Maven目录结构 
        • 下面是mvn archetype:generate 的使用例子 
           
          默认回车即可,输入groupId等,回车 

三、仓库

    • maven使用一个仓库,通过声明依赖关系可以引用各个构件,各构件通过坐标被maven管理。
    • maven仓库包括本地仓库和远程仓库。优先从本地仓库(本地仓库默认地址为:${user.home}/.m2/repository。)中寻找相关构件,远程仓库中的构件下载到本地仓库使用。中央仓库是 Maven 核心自带的远程仓库,默认地址:http://repo1.maven.org/maven2。私服是架设在本机或局域网中的一种特殊的远程仓库,通过私服可以方便的管理其它所有的外部远程仓库。
    • 本地仓库的配置 
       
    • 中央仓库配置(maven默认配置好的) 
       
    • 镜像仓库的配置 
    • 私服的搭建 
      大多数公司使用私服,暂时先写到这,后面抽时间再介绍搭建私服

Maven基本使用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. 安装eclipse的maven插件

    我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...

  5. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  6. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. maven依赖查询地址

    http://search.maven.org/#search%7Cga%7C1%7C

  9. maven 中snapshot版本和release版本的区别

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...

  10. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

随机推荐

  1. [Android Studio] Android Studio常用快捷键

    [Android Studio] Android Studio常用快捷键   (会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲 ...

  2. 51nod1837

    题解: 数论,经过一些大佬的证明,只有1和2这两种可能性 然后再分开来判断即可 注意1的时候为0 代码: #include<bits/stdc++.h> using namespace s ...

  3. weblogic控制台定制不同权限的用户

    安装weblogic并创建域(domain)的时候,会默认创建一个用户,此用户为管理员,也就是权限最大的.只有这样一个用户,用起来很不安全,因为一个测试环境,好多人在用,经常会有人修改上面的数据源等关 ...

  4. Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)

    推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...

  5. 软件工程——Word-Counter

    Python实现Word-Counter 一.前言 Github地址:https://github.com/hzquestion/Word-Counter 二.项目概述 实现一个统计程序,它能正确统计 ...

  6. Word文档加密小技巧

    文件菜单设置: 1.打开需要加密的Word文档. 2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡. 3.分别在“打开权限密码”和“修改权限密码”中输入 ...

  7. 使用adb命令对手机进行截屏保存到电脑,SDCard

    adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard) adb pull /sdcard/screenshot.png ...

  8. 升级 macOS Mojave 后部分软件 (如 VS Code) 字体变虚的解决方法

    目前有些朋友的设备可能还是“非 Retina” 显示器,那这样如果升级到 Mojave 后你会发现文字不清晰了,这是因为 Mojave 默认关闭了文字次像素渲染字体,你需要在终端里执行: defaul ...

  9. PDB调试模块

    这里主要是一些对于调试常用的命令:1.直接通过命令端输入进行调试 以pdb调试模式运行(主要用这个) python3 -m pdb file.py 2.在代码中导入pdb模块 import pdb 功 ...

  10. SYSTEM\sys\sys.c:33:7: error: expected '(' before 'void' __ASM void MSR_MSP(u32 addr)

    在STM32中的sys.c文件编译报出这个错误时: __ASM void MSR_MSP(u32 addr){ MSR MSP, r0 //set Main Stack value BX r14} 如 ...