MAVEN简介
Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。
Maven 功能
1.构建
2.文档生成
3.报告
4.依赖
5.SCMs
6.发布
7.分发
8.邮件列表
Maven 特点
项目设置遵循统一的规则。
任意工程中共享。
依赖管理包括自动更新。
一个庞大且不断增长的库。
可扩展,能够轻松编写 Java 或脚本语言的插件。
只需很少或不需要额外配置即可即时访问新功能。
基于模型的构建 − Maven能够将任意数量的项目构建到预定义的输出类型中,
如 JAR,WAR 或基于项目元数据的分发,而不需要在大多数情况下执行任何
脚本。
项目信息的一致性站点 − 使用与构建过程相同的元数据,Maven 能够生成
一个网站或PDF,包括您要添加的任何文档,并添加到关于项目开发状态的
标准报告中。
发布管理和发布单独的输出 − Maven 将不需要额外的配置,就可以与源
代码管理系统(如 Subversion 或 Git)集成,并可以基于某个标签管理
项目的发布。它也可以将其发布到分发位置供其他项目使用。Maven 能够
发布单独的输出,如 JAR,包含其他依赖和文档的归档,或者作为源代码
发布。
向后兼容性 − 您可以很轻松的从旧版本 Maven 的多个模块移植到 Maven 3 中。
子项目使用父项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号,
并行构建 − 编译的速度能普遍提高20 - 50 %。
更好的错误报告 − Maven 改进了错误报告,它为您提供了 Maven wiki 页面的
链接,您可以点击链接查看错误的完整描述。
面试题
MAVEN介绍
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录
结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作
更轻松,同时创建报表,检查,构建和测试自动化设置。
Maven提供了开发人员的方式来管理:
Builds
Documentation
Reporting
Dependencies
SCMs
Releases
Distribution
mailing list
概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。
MAVEN环境变量配置
1.MAVEN的根目录
2.MAVEN的bin目录
这两步超简单
内部文件自己去网站上下载即可
测试
用 windows+R 输入cmd 打开控制台
输入mvn
如果跟我一样就可以用了
MAVEN命令参数
-
clean
maven工程的清理命令,执行clean会删除target目录及内容。 -
compile
maven工程的编译命令,作用是将 src/main/java 下的文件编译为class文件输出到target目录下。 -
test
maven工程的测试命令,作用是执行 src/test/java 下单元测试类,并编译为class文件,运行测试类。(也执行了compile命令) -
package
maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
且运行test命令,jar包或者war包中没有单元测试的内容 -
install
maven工程的安装命令,执行install将mave工程打成jar包或war包,并发布到本地仓库。
且运行了package命令
测试
我这里新建了一个MavenWeb 直接测试 且用的是本地库
库:(介绍一下)
在 Maven 的术语中,仓库是一个位置(place)。
Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。
Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
Maven 仓库有三种类型:
本地(local)
中央(central)
远程(remote)
本地仓库
Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。
运行 Maven 的时候,Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
默认情况下,不管Linux还是 Windows,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。
Maven 本地仓库默认被创建在 %USER_HOME% 目录下。要修改默认位置,在 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。
中央仓库(central)
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。
中央仓库的关键概念:
这个仓库由 Maven 社区管理。
不需要配置。
需要通过网络才能访问。
要浏览中央仓库的内容,maven 社区提供了一个 URL:http://search.maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。
远程仓库(remote)
如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
举例说明,使用下面的 pom.xml,Maven 将从远程仓库中下载该 pom.xml 中声明的所依赖的(在中央仓库中获取不到的)文件。
dos命令测验
clean命令
target文件没了(编译文件)
compile 命令
test命令
剩下的依次运行即可
IDEA内部操作
pom.xml 里的配置信息
标签scope 作用域
-
compile
默认依赖范围,作用域在编译、测试、运行时都有效。 -
test
作用域在测试时有效。编译和运行时不需要,比如:Junit。 -
provided
-
作用域在编译、测试时有效。运行时不需要,比如: servlet api 被 tomcat 容器提供。
-
runtime
作用域在测试、运行时有效。编译时不需要,比如:jdbc的驱动包。
<!-- -->
<modelVersion>4.0.0</modelVersion><!-- 模型版本 -->
<groupId>maven_test</groupId> <!-- 组织名,公司网址的反写 + 项目名称-->
<artifactId>maven_test</artifactId><!-- 项目名-模块名 -->
<version>1.0-SNAPSHOT</version><!-- 项目版本号 -->
<packaging>war</packaging><!-- 项目类型 war(web项目)不写或jar(普通java类型) -->
<url>/</url><!-- 项目路径 -->
<!-- 添加外部依赖 -->
<dependencies> <!-- 在这里添加你的多种依赖 -->
<!-- 添加jsp依赖 -->
<dependency> <!-- 在这里添加你的依赖 -->
<groupId>javax.servlet.jsp</groupId> <!--库名称,也可以自定义-->
<artifactId>jsp-api</artifactId> <!--库名称,也可以自定义-->
<version>2.2</version> <!--版本号-->
<scope>provided</scope><!--作用域-->
</dependency>
<!-- 添加Servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- 添加jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 添加德鲁伊链接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
<!-- jdbcTemplate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 添加jdk 1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId><!-- 位置 -->
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <!-- 版本号 -->
<configuration>
<source>1.8</source> <!-- 版本号 -->
<target>1.8</target> <!-- -->
<encoding>utf-8</encoding> <!-- 编码格式 -->
</configuration>
</plugin>
<!-- 添加tomcat7-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8888</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
注意:
想执行test方法其类名必须有Test字样
案例
下载很慢等着就可以了
下面这样就下完了
创建文件