Maven概述:Maven是很有效的项目管理工具,maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目构建、报告和文档的软件项目管理工具。统一管理环境,架包等。

一 maven下载及环境配置

maven 依赖java的运行环境   在使用maven之前请下载安装JDK并配置其环境。

maven下载 : http://maven.apache.org/download.cgi

下载后解压到盘(D)的 根目录

配置 :

1.在 环境变量 新建MAVEN_HOME

变量名:MAVEN_HOME

变量值:D:\apache-maven-3.5.0

2.在PATH中加入maven的  bin 目录

%MAVEN_HOME%\bin

3.检查是否配置成功

cmd   输入   mvn -v

二 Maven核心知识:

1.Maven 项目目录结构:

src

-main

-java

-package

-test

-java

-package

resources

pox.xml

2.常用的项目构建路径

mvn            -v  查看maven版本

compile  编译

test 测试

package 打包项目

clean 删除target文件和字节码文件

install 把本项目的jar包安装到本地仓库中\

3.自动创建目录骨架

两种方式:

1>使用 mvn archetype:generate 按照提示进行选择创建

2>使用 mvn archetype:generate -DgroupId=组织名,一般是公司网站的反写+项目名

-DartifactId=项目名-模块名

-Dversion=项目的版本号

-Dpackage=代码所存在的包名

4.maven中的坐标和仓库

坐标:构建,也是我们在pom.xml 文件中配置的信息(坐标)

仓库:

本地仓库:也就是本地conf/settings.xml指定配置的仓库所在位置

远程仓库:maven的全球仓库maven-model-builder-3.3.9.jar 里       pom.xml:https://repo.maven.apache.org/maven2

镜像仓库:所谓镜像就是a和b提供了一样的功能

设置镜像仓库在conf/settings.xml 里

<mirrors>

<mirror>

<id>maven.net.cn</id>

<mirrorOf>central</mirrorOf> 也可以是 * 匹配所有的仓库

<name>central mirror in china</name>

<url>http://maven.net.cn/centent/groups/public</url>

</mirror>

<mirrors>

如果使用镜像仓库本地的仓库将不能使用

更改本地仓库的位置:settings.xml  <localRepository>E:\mavendevelopment\m2\repository</localRepository>

5.maven的生命周期和插件

一个完整的项目构建过程包括:

清理, 编译, 测试, 打包, 集成测试, 验证, 部署

maven定义了三套相互独立的生命周期:

clean: 清理项目,default: 构建项目,site: 生成项目站点

clean:清理项目

pre-clean:执行清理前的工作

clean:清理上一次构建生成的所有文件

post-clean:执行清理后的工作

default:构建项目主要有:

compile

test

package

install

site:生成项目站点

pre-site: 生成站点前要完成的工作

site: 生成项目的站点文档

post-site: 生成项目站点后要完成的工作

site-deploy:发布生成的站点到服务器上

插件的使用:

如:source插件

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-source-plugin</artifactId>

<version>2.4</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>jar-no-fork</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

6.pom.xml 解析 元素介绍:

搜索maven pom.xml 元素解析

<!--   指定当前pom的版本  -->

<modelVersion>4.0.0</modelVersion>

<groupId>反写的公司网站+项目名</groupId>

<artifactId>项目名+木块名</artifactId>

snapshot //快照

alpha //内部版本

beta //公测版本

Release //稳定版本

<version>0.0.1SNAPSHOT</version>

打包是第后缀名,默认为jar,   war  zip  pom

<packaging></packaging>

<name>项目描述名</name>

<url>项目地址</url>

<description>项目描述</description>

<developers></developers>

<licenses></licenses>

<organization></organization>

依赖:  依赖传递、  依赖范围、   依赖冲突

依赖冲突:   1短路优先  A->B->C->X(jar)

A->D->X(jar)优先

2 先声明先优先

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.10</version>

<type></type>

<scope>test</scope>依赖范围  编译 测试 运行

<optional></optional> 设置依赖是否可选

<exclusions>排除依赖传递列表

<exclusion>

<groupId></groupId>

<artifactId></artifactId>

</exclusion>

</exclusions>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-source-plugin</artifactId>

<version>2.4</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>jar-no-fork</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

<parent></parent>继承

<modules><module></module></modules>批量干什么  聚合

tomcat7 配置:

<build>

<finalName>MyMavenPro</finalName>

<plugins>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.1</version>

<configuration>

<port>8081</port>

<path>/MyMavenPro</path>

<uriEncoding>utf-8</uriEncoding>

<finalName>MyMavenPro</finalName>

<server>tomcat7</server>

</configuration>

</plugin>

</plugins>

</build>

运行时用命令:tomcat7:run

maven基本基础知识及命令学习-1的更多相关文章

  1. 《Linux基础知识及命令》系列分享专栏

    <Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...

  2. Linux基础知识与命令1(su passwd)

    一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...

  3. Java基础知识二次学习--第三章 面向对象

    第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...

  4. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  5. Windows权限提升基础知识和命令

    介绍 这篇文章是介绍window的权限提升,虽然不是一个全面的指南,但会试图覆盖主要的技术,常用的资源列表在文章底部,可供大家参考. window权限提升基础知识 初始信息收集 在开始提权之前,我们需 ...

  6. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

  7. linux学习笔记:1.基础知识和命令行基本操作

    初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...

  8. Go语言核心36讲(Go语言基础知识一)--学习笔记

    01 | 工作区和GOPATH 从 Go 1.5 版本的自举(即用 Go 语言编写程序来实现 Go 语言自身),到 Go 1.7 版本的极速 GC(也称垃圾回收器),再到 2018 年 2 月发布的 ...

  9. 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...

随机推荐

  1. javascript面向对象编程笔记

    对象:一切事物皆是对象.对象是一个整体,对外提供一些操作.比如说一个收音机是一个对象,我们不需要知道它的内部结构是什么,只需要会使用外部的按钮就可以使用收音机. 面向对象:面向对象语言的标志是他们都有 ...

  2. JVM菜鸟进阶高手之路一(一次与笨神,阿飞近距离接触修改JVM)

    转载请注明原创出处,谢谢! 今天在JVMPocket群里面看见,阿牛发了一个gc截图,之后ak47截图了特别恐怖,我就觉得好奇,去看看服务情况,截图日志如下 关于jstat命令详情可以参考:https ...

  3. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  4. 极化码之tal-vardy算法(2)

    上一节我们了解了tal-vardy算法的大致原理,对所要研究的二元输入无记忆对称信道进行了介绍,并着重介绍了能够避免输出爆炸灾难的合并操作,这一节我们来关注信道弱化与强化操作. [1]<Chan ...

  5. oracle数据库备份、还原 (如何将Oracle 11g备份的dat文件导入到10g数据库里面)

    如何将Oracle 11g备份的dat文件导入到10g数据库里面 解决方法:      导出的时候后面加上目标数据库的版本号   导出: 在SQL plus下执行:create or replace  ...

  6. 第5章 不要让线程成为脱缰的野马(Keeping your Threads on Leash) ---线程优先权(Thread priority)

    有没有过这样的经验?你坐在你的车子里,目的地还在好几公里之遥,而时间已经很晚了.你拼命想告诉那些挡住你去路的人们,今天这个约会对你是多么多么重要,能不能请他们统统--呃--滚到马路外?很不幸,道路系统 ...

  7. Python CSV 超简明用法

    平常经常会用CSV存储数据,不可避免的会跟CSV文件的读写操作扯上关系. Python有CSV这个Package来解决这个问题,官网也有比较详细的教程 https://docs.python.org/ ...

  8. 一个“.java”文件中是否可以包含多个类(不是内部类)?有什么限制?

    可以,若这个类的修饰符是public则,其类名须与文件名相同.

  9. Theano学习-scan循环

    \(1.Scan\) 通用的一般形式,可用于循环 减少和映射(对维数循环)是特殊的 \(scan\) 对输入序列进行 \(scan\) 操作,每一步都能得到一个输出 \(scan\) 能看到定义函数的 ...

  10. windows下怎么解决Python双版本问题

    相信大家会在windows下会遇到Python双版本问题 当我们装了Python2和Python3时我们好只能在命令栏调出最高版本的那个低版本的难道消失了吗?今天我们就解决这个问题! 1.下载 我们在 ...