Maven的安装及环境配置

安装及配置只需按照以下三个链接的步骤走

撸帝的博客https://www.funtl.com/zh/maven/Maven-安装配置.html#本节视频

https://www.funtl.com/zh/maven/Maven-本地仓库.html

https://www.funtl.com/zh/maven/Maven-中央仓库.html#本节视频

Maven概述

总的来说,Maven是一个项目管理综合工具。Maven可以帮助开发人员按照标准在非常短的时间里完成配置工作,减少开发时间。

没有Maven之前

  • 问题一:一个项目往往需要几十甚至上百个jar包,开发人员往往需要到处寻找jar包,然后再手动导包,可想而知这繁琐的过程会浪费多少时间,这还是在所有开发人员的jar包版本相同情况,否则还会导致开发过程出现版本不兼容的问题。
  • 问题二:没有Maven以前,不同的开发人员的项目目录是不一样的。不同的程序员是有自己的项目目录格式的,项目目录格式的不统一会造成各种问题,比如兼容问题、查找困难等。而Maven提供了统一的项目目录格式,因此Maven开始流行。下图是Maven的标准项目目录格式。

Maven的基本功能

基于Maven来创建的项目,只需在Maven的核心配置文件pom.xml中写入各种jar包的依赖,就可以实现自动导入jar包,jar包的依赖可以重复使用。Maven有专门的储存jar的本地仓库远程仓库,一个project配置依赖之后可以从本地仓库包获取jar包,当本地仓库不存在jar包时,pom中的配置自动在远程仓库下载jar包。当然需要更新jar版本只需在pom.xml中更改版本号。

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> <groupId>com.lusifer</groupId>
<artifactId>project</artifactId>
<version>1.0.0</version> </project>
  • 节点描述

    • groupId 这是项目组的编号,这在组织或项目中通常是独一无二的。
    • artifactId 这是项目的 ID。这通常是项目的名称。
    • version 这是项目的版本。

下为导入一个jar包的pom.xml,导入多个jar包只需在中加入对应的依赖,可以在https://mvnrepository.com 找到相应jar包的依赖

<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> <groupId>com.azuki</groupId>
<artifactId>azukishop</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
</dependencies> </project>

Maven 提供了以下方式给开发人员来管理pom.xml:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCMs
  • Releases
  • Distribution
  • mailing list
SNAPSHOT版本

快照(SNAPSHOT)是一个特殊版本,指本项目处于未完善阶段,有这个版本号的项目每次项目的变更都会引起Maven远程仓库的同步。

Maven的其他功能

  • 实际上Maven 是一个执行插件的框架,每一个任务实际上是由插件完成的。Maven 插件通常用于:

    • 创建 jar 文件(就是将项目封装成jar包)
    • 创建 war 文件(就是将项目封装成jar包)
    • 编译代码文件
    • 进行代码单元测试
    • 创建项目文档
    • 创建项目报告

一个插件通常提供了一组目标,可使用以下语法来执行:mvn [plugin-name]:[goal-name]

例如,一个 Java 项目可以使用 Maven 编译器插件来编译目标,通过运行以下命令编译mvn compiler:compile

Maven 提供以下两种类型插件:
  • 构建插件 在生成过程中执行,并在 pom.xml 中的 元素进行配置
  • 报告插件 在网站生成期间执行,在 pom.xml 中的,元素进行配置

基于Maven的项目,在Maven Project栏目往往会有以下插件:

  • clean插件 编译后的清理目标,删除目标目录
  • compiler插件 编译 Java 源文件
  • surefile插件 运行JUnit单元测试,创建测试报告
  • jar插件 从当前项目构建 JAR 文件
  • war插件 从当前项目构建 WAR 文件
  • javadoc插件 产生用于该项目的Javadoc
  • antrun插件 从构建所述的任何阶段运行一组 Ant 任务

Terminal栏的基本命令

  • 清除产生的项目mvn clean
  • 编译源代码mvn compile
  • 打包 mvn package
  • 只打包不测试(跳过测试)mvn -dmaven.test.skip=true
  • 安装到本地仓库mvn install
  • 源码打包mvn source:jar



    mvn source:jar-no-fork

(一)Mybatis之初步接触的更多相关文章

  1. php大力力 [006节]初步接触认识phpMyAdmin

    phpMyAdmin 2015-08-22 php大力力006. 初步接触认识phpMyAdmin 以下是phpAdmin网络截图: 这是通过MAMP一键安装的. php中MyAdmin的使用-猿代码 ...

  2. avalon - 初步接触

    avalon - 初步接触 avalon的介绍http://rubylouvre.github.io/mvvm/ 按照作者的介绍,在HTML中添加绑定,在JS中用avalon.define定义View ...

  3. 初步接触CERNVM

    初步接触的来源是对ROOT数据分析工具的搜索,看到一个叫做Life as a Physicist的国外博客.知道了这个包含容器分发的软件,跟重要的是,这个欧洲核子中心开发的平台,对于我等科研人员是一大 ...

  4. Spring boot -环境搭建 ,初步接触(1)

    1. Eclipse 创建 maven project  项目目录如下: 2. pom.xml  配置文件 <project xmlns="http://maven.apache.or ...

  5. 为什么要使用puppet 及初步接触

    为什么要使用puppet 及初步接触   1.简介 云计算环境下,密度高,机器数量多,还要求弹性和伸缩性,这对于运维提出更高的要求.系统管理员需要经常安装操作系统,对系统参数进行配置和优化,对人员进行 ...

  6. C#初步接触

    如同非常多刚開始学习的人一样,刚接触C#的时候,也是一头雾水,学习了好长时间,都搞不清楚一些基本名称是什么.什么是C#?什么是.net?什么是visual studio?它们之间有什么关系?以下我们就 ...

  7. java 持久框架mybatis的初步学习

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...

  8. 初步接触html心得

    接触HTML大概有七天,做一下小总结,过过记忆. html大致可分为三部分:Dtd头.Head.Body三大部分. Dtd头:是用于浏览器编辑的,也就是俗话说的给电脑看的的东西. Head:内细分下大 ...

  9. 实验记录一 初步接触cortex-M3

    应该说老早就在接触cortex-M3了.曾经没想到会接触嵌入式,结果由于导师的缘故.在选择项目管理时,就呵呵了.不废话.搭配环境非常easy,纯粹傻瓜式.可由于自己的马虎,却让自己一直困惑. 记得在前 ...

随机推荐

  1. java java.io.IOException: No locks available异常处理解决

    try {    randomAccessFile = new RandomAccessFile(file, "rw");    lock = randomAccessFile.g ...

  2. gitbash使用

    gitbash是什么 git bash是Windows下的命令行工具. 基于msys GNU环境,有git分布式版本控制工具. 主要用于git版本控制,上传下载项目代码. GNU环境,就是说如果你喜欢 ...

  3. 利用JS判断当前来路域名并跳转到指定页面

    某网站绑定了多个域名,默认情况下访问这些域名的时候是指向网站的首页,也就是访问不同域名时看到的页面是一样的,现在需要访问不同域名时显示不同页面. 一般情况下,可以用子站绑定域名的方法来实现,访问不同的 ...

  4. Oracle :多实例切换

    Connecting to 10.1.4.21:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'. La ...

  5. 基于jQuery仿淘宝产品图片放大镜特效

    在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...

  6. 「NOIP2012」「LuoguP1083」 借教室

    Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的 ...

  7. 哈希表的C实现(一)

    哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.具体的介绍网上有很详 ...

  8. MP4V2库与MP4AV库编译

    最近在开发一个将RTP流存储为MP4文件的功能.其中针对MP4文件读写,用到了两个开源的库.其中MP4V2用于数据的读写,MP4AV用于对其中的数据帧进行分析. MP4V2和MP4AV都是开源项目MP ...

  9. centos7命令行模式安装&&配置_br0+kvm+虚拟机+添加硬盘+快照及恢复

    KVM创建虚拟机步骤 Submitted by zhaoley on October 18, 2016 - 10:43am 测试环境: 1: 43.243.130.89, CentOS Linux r ...

  10. scp.sh

    #!/bin/sh #Auto change server files #liudong 2016-3-21 if [ ! -f ip.txt ];then echo -e "\033[31 ...