Software--Java_Maven
2018-01-24 10:27:17
一 简述
http://maven.apache.org/
Apache Maven Project
a softeware project management and comprehension tool. Base on the concept of a project object model (POM),
Maven can manage a project`s build, repoorting and documentation from a centrall piece of information.
一个项目管理和构建自动化工具。
Maven 使用惯例优于配置的原则:
|
目录 |
目的 |
| ${basedir} | 存放 pom.xml 和所有的子目录 |
| ${basedir}/src/main/java | 项目的 java 源代码 |
| ${basedir}/src/main/resources | 项目的资源,etc: property |
| ${basedir}/src/test/java | 项目的测试代码 |
| ${basedir}/src/test/resources | 测试用的资源 |
一个 maven 项目在默认情况下会产生 JAR 文件,编译后的 classes 会放在
${ basedir }/target/classes 下面,JAR 文件会放在 $ { basedir } / target / 下面。
项目代码会广泛运用第三方依赖,例如 Spring Framework , Hibernate ORM 和 Spring Security
因此引入 Apache Maven 及其依赖管理功能。IDE 打开项目时,会自动在本地 Maven 库中查找这些依赖,如果需要则下载。
可以查看 pom.xml 文件中检查依赖。
Maven 依赖的作用域
- " compile " 作用域 -- 表示该依赖在项目的 编译类路径上、单元测试编译 和 执行类路径上、运行类路径上以及运行应用程序时的最终运行时类路径上可用。在 Java EE Web 应用程序中,意味着依赖将被复制到所部署的应用程序中。
- “ runtime " 作用域表示依赖将在单元测试执行和运行时执行类路径上可用。但不像 compile 作用域一样在编译应用程序或者执行单元测试时也可用。一个运行时依赖将被复制到所部署的应用程序中。
- ” provided " 作用域白是运行应用程序的容器将会提供该依赖。在 Java EE 应用程序中,意味着依赖已经在 Servlet 容器或应用服务器的类路径上了,因此不需要再复制到部署的应用程序中。 Maven 和 IDE将保证在编译应用程序和执行单元测试时,“ provided " 作用域的依赖是可用的。
有一些 Maven 依赖将会包含 排除(exclusions), 用于忽略某些特定的依赖--它们被称为临时依赖。 很多时候这些排除的存在是为了使代码更清晰。
当某个依赖依赖于另一个旧版本的依赖, 而不是现在正在使用的依赖时,通过排除可以更清楚地标示这里出现的矛盾,并且避免了由 Maven 的最近算法所引起的问题。
某些 exclusions 的存在是由于Java SE 或 Java EE 的新版本已经提供了依赖, 或者因为 依赖 ID发生了变化。
二 Maven 的安装
1. JDK 下载安装
2. Maven 下载 安装
验证命令: $ mvn -v
mvn verify 即可构建起项目

浙公网安备 33010602011771号