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 依赖的作用域

  1. " compile " 作用域 -- 表示该依赖在项目的 编译类路径上、单元测试编译 和 执行类路径上、运行类路径上以及运行应用程序时的最终运行时类路径上可用。在 Java EE Web 应用程序中,意味着依赖将被复制到所部署的应用程序中。
  2. “ runtime " 作用域表示依赖将在单元测试执行和运行时执行类路径上可用。但不像 compile 作用域一样在编译应用程序或者执行单元测试时也可用。一个运行时依赖将被复制到所部署的应用程序中。
  3. ” 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 即可构建起项目

 

posted @ 2018-01-24 18:34  君子之行  阅读(6)  评论(0)    收藏  举报