Maven是现在的Java程序员应该都会遇到或使用的一个工具。那Maven具体是什么?到底能干什么?
Maven是一个项目管理工具,用来管理项目的生命周期,如项目中各个项目之间的依赖管理,项目中使用到的jar包依赖管理,还有许多项目构建的插件等。使用Maven最大的好处就是不再需要我们手工维护项目中的各种jar包,及jar包需要依赖的其他jar包,也不再需要我们解决各种jar包之间的冲突,这一切maven帮我们都做好了。
目前Java开发中流行的集成开发工具Idea已经集成了Maven工具,打开Idea的设置选择Maven项,就可以看到自带的Maven的一些信息。我觉得Idea自带的Maven就挺好的,就没有去再安装一个。但是之前不知道Idea自带Maven工具,为此有次出现一个问题,就是因为两个Maven仓库的原因。在公司的电脑上我自己装了一个Maven,自己的电脑上没有装,直接使用Idea自带的Maven。
使用 Maven 给我们带来的最直接的帮助,就是 jar 包得到了统一管理,那么这些 jar 包存放在哪里呢?它们就在您的 本地仓库 中,位于 C:Users用户名.m2 目录下(当然也可以修改这个默认地址)。
实际上可将本地仓库理解“缓存”,因为项目首先会从本地仓库中获取 jar 包,当无法获取指定 jar 包的时候,本地仓库会从 远程仓库(或 中央仓库) 中下载 jar 包,并放入本地仓库中以备将来使用。这个远程仓库是 Maven 官方提供的,可通过 http://search.maven.org/ 来访问。这样一来,本地仓库会随着项目的积累越来越大。通过下面这张图可以清晰地表达项目、本地仓库、远程仓库之间的关系。
Maven执行命令有两种方式:
执行下面的命令
mvn archetype:generate
接下来会出现下面的选项:
mvn archetype:generate -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=net.ydstudio -DartifactId=maven-demo -Dversion=1.0
创建项目这事我觉得还是用Idea来做,方便快捷。用命令创建的话,命令有时记得不全,不是很方便。
创建成功之后的项目中一般会有下面的几个目录,如果没有的话就自行创建。
还有一个重要的文件: pom.xml;pom.xml称为Project Object Model(项目对象模型),它用于描述整个Maven项目,所以也称为Maven描述文件。pom.xml 才是理解 Maven 的关键点,很有必要看看它到底长什么样。
打开生成的pom文件,内容如下:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.ydstudio</groupId> <artifactId>maven-demo</artifactId> <version>1.0</version> <packaging>war</packaging> <name>maven-demo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>maven-demo</finalName> </build> </project>
我们来解释一下:
我们可以在 pom.xml中定义一些列的项目依赖(构件包),每个构件包都会有一个 Scope(作用域),它表示该构件包在什么时候起作用,包括以下五种:
前面我们已经使用了几个 Maven 命令,例如:mvn archetype:generate,mvn tomcat7:run-war 等。其实,可使用两种不同的方式来执行 Maven 命令:
执行 Maven 命令需要注意的是:必须在Maven项目的根目录处执行,也就是当前目录下一定存在一个名为 pom.xml 的文件。
最后更新于 2018-06-29 09:24:22 并被添加「java Java学习系列文章」标签,已有 1 位童鞋阅读过。