本材料是“企业发展概论”系列的一部分。上一篇文章:
Maven是一个管理和构建项目的工具——Java 程序员真正的助手。它使开发人员在各个工作阶段的工作变得更加轻松:从创建项目结构和连接必要的库到在服务器上部署产品。使用任何框架时,您都必须使用 Maven。那么今天我们就来看看它的主要功能,看看应该如何使用。
一步步安装Maven
-
首先,您需要从此链接下载安装 Maven 。
-
接下来,您需要解压下载的存档并将 M2_HOME 环境变量设置为指向解压存档位置的链接。例如,C:\Program Files\maven\
-
要检查所有内容是否已安装,请在命令行中写入:
mvn 版本
-
如果显示了 Maven、Java 等版本信息,则说明您已准备就绪。
-
现在打开 IntelliJIDEA 并创建一个新项目。在第一个窗口中,选择 Maven:
-
单击下一步并填写以下对话框:
-
接下来,按照标准在所需位置创建一个项目。
项目创建完成后,注意其结构:
- src/main/java文件夹包含 java 类;
- 在src/main/resources中- 我们的应用程序使用的资源(HTML 页面、图片、样式表等);
- src/test - 用于测试。
Maven 中的依赖管理
您可能遇到过“依赖关系管理器”或“依赖关系管理器”这个短语。Maven 可以做到这一切。感谢 Maven,您无需花费大量时间在 Internet 上搜索所需的库、下载它,然后将其连接到项目:只需将所需的库添加到 Maven 依赖项列表中即可。 依赖项写在依赖项 XML 节点中。 假设您的项目中需要 Apache Commons IO 库来简化文件处理。要添加库,请在 pom.xml 中写入五行:<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
您的 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>example.com</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
之后,允许 IntelliJ IDEA 导入依赖项(右下角应出现一个对话框)。现在该库可以使用了:
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMaven {
public static void main(String[] args) {
File tempDirectory = FileUtils.getTempDirectory();
}
}
所有后续依赖项也应写入 <dependencies> 标记内。您可能想知道:您如何知道需要在 <dependency> 标记内包含有关库的哪些信息?这里一切都很简单。在这种情况下,始终指定三个参数:groupId、artifactId 和 version。您可以通过两种方式找到这些参数:
-
在图书馆网站上。如果我们需要 Apache Commons IO,请访问官方网站并选择“依赖项信息”选项卡。所有必要的信息都在这里- 您只需复制它并将其添加到我们的依赖项部分。
-
在Maven 存储库中。在搜索中输入“apache commons io”,您将看到该库的所有可用版本。选择您需要的后,只需复制:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
并添加到您的 pom.xml 中。
Maven 存储库的类型
值得再次提及 Maven 存储库,因为我们实际上在您的计算机上有两个存储库 -外部(全局)和本地。您添加到项目中的所有库都保存在本地存储库中。当Maven向项目添加所需的依赖项时,它首先检查本地存储库是否存在这样的库,只有在没有找到的情况下,它才会转向外部库。正如您所看到的,您可以使用 Maven 添加依赖项,但这并不是它的全部功能。使用 Maven 构建 Java 项目
对于新手来说,这个功能可能看起来毫无意义。如果有 IDE 为什么还需要这个?但不是!首先,您必须在其上构建应用程序的服务器可能不仅没有开发环境,而且还没有图形界面。其次,在大型项目中,Maven 可以更好地处理组装项目的任务。因此,我们不要用等待来折磨自己,而是考虑一下使用 Maven 构建应用程序的过程。阶段
构建应用程序的过程称为 Maven 项目的生命周期,它由阶段组成。你可以在IDEA中点击右上角的Maven>example>Lifecycle来查看它们: 如你所见,有9个阶段:- clean - 从目标目录(保存完成的工件的位置)中删除所有已编译的文件;
- 验证 - 检查所有信息是否可用于构建项目;
- 编译 - 编译带有源代码的文件;
- 测试——测试已启动;
- package——编译后的文件被打包(打成jar、war等档案);
- verify — 执行检查以确认打包文件是否准备就绪;
- install - 包被放置在本地存储库中。现在可以作为外部库被其他项目使用;
- 站点 - 创建项目文档;
- 部署 - 将收集的存档复制到远程存储库。
-
通过命令行:
MVN包
-
使用 Intellij IDEA:
在启动包之前,将执行验证、编译和测试阶段。清洁阶段是个例外。建议在每个新项目构建之前调用它。可以用空格分隔列出阶段:
mvn 干净的包。
插件
要将 Maven 插件添加到项目中,其描述与依赖项类似,必须放置在 pom.xml 中的 <build> 和 <plugins> 标记中。例如,我们需要一个插件来检查所有外部库是否都使用最新版本。在网上搜索了一下,你可以找到这个插件,并附有使用说明。让我们设置它的groupId、artifactId 和version。让我们写下他必须在哪个阶段实现哪些目标。在我们的例子中,当前 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>example.com</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>uptodate-maven-plugin</artifactId>
<version>0.2.0</version>
<executions>
<execution>
<goals>
<goal>dependency</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
我们仍然可以继续我们的项目。但让我们尝试将 Apache Commons IO 版本更改为 2.0 并开始构建项目。我们得到: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
这里我们有一个由插件引起的构建错误。错误消息指出,当 2.6 可用时,我们正在使用 2.0 版本。总的来说,Maven是一个非常有用的工具。一开始可能看起来很难使用,但是练习一下,在 Maven 下创建你的项目,一段时间后你会对结果感到非常满意。本文故意省略了很多有关 Maven 的细节——我们只关注要点。但完美是没有限制的:您可以在产品的官方网站上阅读有关 Maven 的更多信息。 第 5 部分:Servlet。编写一个简单的 Web 应用程序 第 6 部分. Servlet 容器 第 7 部分. 介绍 MVC(模型-视图-控制器)模式 第 8 部分. 编写一个小型 spring-boot 应用程序
GO TO FULL VERSION