maven基本基础知识及命令学习-1

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

posted @ 2017-10-30 16:18  M_Y_522  阅读(815)  评论(0编辑  收藏  举报