Maven系列(一):Maven简介
2017-01-08 00:00
330 查看
摘要: 最近在做Maven的项目模块分拆,集成spring-boot+spring-session+redis+dubbo实现企业级项目的模块化开发框架,用到Maven的很多东西,所以写一个Maven系列的内容来复习并总结一下Maven的知识。
通过上面这句话,我们可以了解到Maven不仅仅可以管理项目的构建,而且可以根据项目源码自动生成文档,以及报告。包括测试报告,测试覆盖率报告等等。。
1、使得构建过程更加容易,方便编译,打包,发布
2、为每个项目提供统一的配置
3、提供优质项目信息
4、最佳开发实践
5、安装和更新第三插件透明化
2、解压到指定目录,如d:\maven
3、配置环境变量
M2_HOME = D:\maven\apache-maven-3.*.*
MAVEN_OPTS = -Xms128m -Xmx512m(可选)
4、在path变量末尾加入“%M2_HOME%\bin;”,保存退出
5、在cmd界面中输入mvn -v测试是否安装成功
在没有私服的情况下,Maven会从远程仓库中查找所需的jar包并下载到本地仓库之中。
在有私服的情况下,Maven会先检查本地仓库中是否存在所需jar包,如果没有则会到私服中查询是否存在所需jar包,如果存在则从私服中下载到本地仓库之中,如果没有则会到远程仓库中查询,如果远程仓库中存在所需jar包,则会先把jar包下载到私服之中,然后再从私服中下到本地仓库,这样下次其他机器需要下载同样的jar包时就可以直接从私服中下载了。
想了解更多配置请查阅相关文档。
Maven官方资源库:http://repo2.maven.org/maven2/
Maven依赖查询:http://mvnrepository.com/(可以查询所需依赖的jar包配置)
Maven是什么?
Maven在Apache官网的解释为:Maven是基于项目对象模型(POM即Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。通过上面这句话,我们可以了解到Maven不仅仅可以管理项目的构建,而且可以根据项目源码自动生成文档,以及报告。包括测试报告,测试覆盖率报告等等。。
Maven的目标
Maven的主要目标是为了使开发人员在最短的时间内了解项目的所有状态。为了达到这一目标,Maven考虑以下五个方面的内容:1、使得构建过程更加容易,方便编译,打包,发布
2、为每个项目提供统一的配置
3、提供优质项目信息
4、最佳开发实践
5、安装和更新第三插件透明化
Maven的安装和配置(推荐百度Maven安装教程)
1、进入官网下载最新版本压缩包 官网地址:http://maven.apache.org/2、解压到指定目录,如d:\maven
3、配置环境变量
M2_HOME = D:\maven\apache-maven-3.*.*
MAVEN_OPTS = -Xms128m -Xmx512m(可选)
4、在path变量末尾加入“%M2_HOME%\bin;”,保存退出
5、在cmd界面中输入mvn -v测试是否安装成功
了解Maven仓库
使用Maven给我们带来的最直接的好处,就是统一管理jar包,它们就保存在本地仓库中,默认地址位于C:\Users\用户名.m2目录下(这个默认地址可以修改,看教程)在没有私服的情况下,Maven会从远程仓库中查找所需的jar包并下载到本地仓库之中。
在有私服的情况下,Maven会先检查本地仓库中是否存在所需jar包,如果没有则会到私服中查询是否存在所需jar包,如果存在则从私服中下载到本地仓库之中,如果没有则会到远程仓库中查询,如果远程仓库中存在所需jar包,则会先把jar包下载到私服之中,然后再从私服中下到本地仓库,这样下次其他机器需要下载同样的jar包时就可以直接从私服中下载了。
配置项说明
maven项目中pom.xml配置说明:<?xml version="1.0" encoding="UTF-8"?> <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.xzq</groupId> <!-- 项目身份标识 --> <artifactId>test</artifactId> <!-- 版本号 --> <version>1.0-SNAPSHOT</version> <!-- 项目名称 --> <name>test</name> <!-- 打包类型 有pom、war、jar等类型 --> <packaging>pom</packaging> <!-- 子项目配置 --> <modules> <!-- 子项目身份标识 --> <module>test-Common</module> </modules> <!-- 属性配置 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 自定义属性,可以用于依赖包版本控制。在配置文件中使用${junit.version}调用 --> <junit.version>4.12</junit.version> </properties> <!-- 父项目配置 --> <parent> <!-- 父项目组织机构标识 --> <groupId>org.springframework.boot</groupId> <!-- 父项目项目标识 --> <artifactId>spring-boot-starter-parent</artifactId> <!-- 父项目版本号 --> <version>1.3.8.RELEASE</version> </parent> <!-- 公共依赖配置 --> <dependencies> <!-- 依赖配置 --> <dependency> <!-- 组织机构标识 --> <groupId>junit</groupId> <!-- 项目标识 --> <artifactId>junit</artifactId> <!-- 版本号 --> <version>${junit.version}</version> <!-- 作用域 取值有(compile(默认)\provided\runtime\test\system) --> <!--compile(默认) 表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布--> <!--provided 表示dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性--> <!--runtime 表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段--> <!--test 表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布--> <!--system 跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它--> <scope>test</scope> </dependency> </dependencies> <!-- 构建项目需要的信息 --> <build> <!-- 使用的插件列表 --> <plugins> <!-- plugin元素包含描述插件所需要的信息 --> <plugin> <!-- 插件在仓库里的group ID --> <groupId>org.apache.maven.plugins</groupId> <!-- 插件在仓库里的artifact ID --> <artifactId>maven-compiler-plugin</artifactId> <!-- 插件的版本 --> <version>3.1</version> <!-- 作为DOM对象的配置 --> <configuration> <!-- 作为DOM对象的配置 --> <source>1.7</source> <target>1.7</target> <compilerArgs> <arg>-XDignore.symbol.file</arg> </compilerArgs> <fork>true</fork> </configuration> </plugin> </plugins> </build> <!-- 私有仓库位置 --> <repositories> <repository> <id>nexus</id> <name>Maven Proxy Repository</name> <url>http://192.168.0.43:8081/nexus/content/repositories/central</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>nexus 3rd</id> <name>3rd party Repository</name> <url>http://192.168.0.43:8081/nexus/content/repositories/thirdparty</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus plugin</id> <name>Maven Proxy Plugin Repository</name> <url>http://192.168.0.43:8081/nexus/content/repositories/central</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
想了解更多配置请查阅相关文档。
推荐链接:
史上最全的pom.xml文件详解:http://www.zuidaima.com/share/1781583829978112.htmMaven官方资源库:http://repo2.maven.org/maven2/
Maven依赖查询:http://mvnrepository.com/(可以查询所需依赖的jar包配置)
相关文章推荐
- 转 --maven系列之一 简介
- maven学习系列——(一)maven简介
- 技术【Maven系列一】之简介和安装配置篇
- Maven学习总结系列一:Maven的简介
- JeeSite系列之二_Maven简介
- Maven系列学习(4)-仓库简介
- PHPLIB Template入门系列 - 1 简介(转寄)
- 深入浅出SQL系列教程(第二节-www.sqlzoo.cn网站简介)
- IBM服务器系列产品分类简介
- XForms 简介系列
- ◆C语言函数库简介系列◆ 1.3 增加图片浏览器的功能 zz
- Sun Java认证考试系列简介
- ◆C语言函数库简介系列◆00.写在前面的话zz
- Atlas系列:从AtlasRuntime.js开始-简介
- Microsoft .NET Framework 2.0 Application Development Foundation 翻译系列1(简介及目录)
- Spring系列第1部分:Spring 框架简介(图)
- CZoneSoft出品: 音频视频在线录制系列之 AV留言本 简介
- Spring 系列:Spring 框架简介
- Spring 系列: Spring 框架简介
- [导入]视频游戏开发系列课程(2):基础编程概念及C#简介