**
Maven:一个优秀的项目构建工具
**
Maven的含义:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Pom.xml (一小段标签 就可以来维护项目或者管理项目)
Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。
在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都按照标准进行。因为大部分的工程配置操作都非常简单并且可复用,在创建报告、检查、构建和测试自动配置时,Maven 可以让开发者的工作变得更简单。
Maven的优势:自动构建,jar包依赖管理,契约编程
Maven的安装与配置
安装JDK–javase第一天的事情
JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装Maven
从网上下载 Maven:http://maven.apache.org/download.html
安装的过程和jdk相似
配置本地仓库
Maven会自动为咱们添加相应的jar包,而这个jar包会先在本地仓库中查找,如果本地仓库中找不到,则会去中央仓库(网络上)去进行下载。
提示:对于仓库的概念咱们在后面Maven导包的部分再进行讲解。
本地仓库默认是在咱们的C盘(系统盘中):
(不同的电脑可能会有区别)
咱们并不建议把 jar包放在系统盘(原因你懂的!)
移动settings.xml文件
MAVEN_HOME/conf/settings.xml 全局的
~用户根路径C:\Users\Administrator/.m2/settings.xml 单个用户的,修改用户的配置文件
测试Maven常用命令(重点–在项目
自动完成)
注:前面的几步只是要一个环境,命令才是我们需要注意与掌握的
1.
打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
2.
cmd 中继续录入mvn clean命令,然后再次查看根目录变化
3.
cmd 中录入 mvn clean compile命令, 查看根目录变化
4.
****cmd 中录入 mvn clean test命令,查看根目录变化
5.
****cmd 中录入 mvn clean package命令,查看根目录变化
6.
****cmd 中录入 mvn source:jar命令,查看根目录变化,源码包
7.
cmd 中录入 mvn clean site命令,查看根目录变化
8.
****cmd 中录入 mvn install命令,查看本地仓库变化
9.
****生成Eclipse的需要2个文件mvn eclipse:eclipse
10.
maven打包不执行测试用例的命令
11.
****mvn package
-Dmaven.test.skip=true
<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>
<!-- 组id:包名 -->
<groupId>cn.itsource.maven</groupId>
<!-- 模块名:和工程名一致 -->
<artifactId>Hello</artifactId>
<!-- 版本号 -->
SNAPSHOT快照,不稳定,随时都在修改bug
RELEASE
释放,稳定版本
<version>0.0.1-SNAPSHOT</version>
<!-- 项目名 -->
<name>hello</name>
<!-- jar文件依赖 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<!-- 只能在测试里面使用src/test/java -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
修改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>
..其它配置省略
<!-- jar文件依赖 -->
<dependencies>
<dependency>...</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
</dependencies>
</project>
互连网搜索坐标(连网)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.0.5.RELEASE</version>
</dependency
groupId 组id:定义当前Maven项目隶属项目,包名,一般是公司项目包名
artifactId 模块id:定义实际项目中的一个模块,模块名(工程名称)
version:定义当前项目的当前版本
SNAPSHOT快照版本,就是开发版本
RELEASE释放版本,正式版本,稳定 使用其他机构提供的jar文件,必须使用释放版本
packaging:定义该项目的打包方式(jar/war) 默认值jar
如果需要oracle的jar,只有自己按照maven坐标的路径,自己拷贝到本地仓库(因为oracle不开源)
咱们只需要加一个包,它就会把这个包以及对应的依赖包全部导入,这确实是太棒了,但是又有同学会觉得,即便是这样,引入这一个包的xml也还是挺麻烦的。
其实,对于这个引入,咱们也是可以直接在网上搜索:
网址:http://mvnrepository.com/
1.1. Maven的插件
其实Maven的本质是一个插件框架,它的核心并不执行任何具体的构建任务,所以这些任务都是交给插件还完成的,例如编译源代码是由maven- compiler-plugin完成的。
Maven 插件通常被用来:
1 创建jar 文件
2 创建war 文件
3 编译代码文件
4 代码单元测试
5 创建工程文档
6 创建工程报告
下面是插件的代码:
<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>cn.itsource.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
//...依赖略
</dependencies>
<build>
<finalName>pss</finalName>
<plugins>
<plugin>
<!-- Maven的编译插件-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意:手动 maven-updateproject
仓库的认识
在 Maven 的术语中,仓库是一个位置(place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工程指定的文件。
Maven的仓库有两种:本地仓库与远程仓库
本地仓库
解释:就是自己电脑存放jar包的地方
默认路径:~/.m2/repository/
注:每个用户只有一个本地仓库
远程仓库
中央仓库:Maven的默认的远程仓库(http://repo1.maven.org/maven2)
配置setting文件里面
<profile> <id>central</id> <repositories> <repository> <id>Central</id> <name>Central</name> <url>http://repo1.maven.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile>
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库
如果公司里面有,只需要配置公司私服地址 找到对应的jar包
<profile> <id>localRepository</id> <repositories> <repository> <id>myRepository</id> <name>myRepository</name> <url>http://192.168.1.1:8081/nexus/content/repositories/myRepository/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile>
镜像:用来替代中央仓库,速度一般比中央仓库快(百度 csdn,oschina,阿里云)
配置:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>