您必须了解如何在计算机上安装软件。 如果您不知道该怎么做,请询问您办公室、学校等的人员或请人向您解释这一点。 Maven 邮件列表不是寻求此建议的最佳场所。
安装
Maven 是一个 Java 工具,因此您必须安装 Java 才能继续。
首先, 下载 Maven 并按照 安装说明进行操作 。 之后,在终端或命令提示符中键入以下内容:
mvn --version
它应该打印出您安装的 Maven 版本,例如:
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven 主页:D:\apache-maven-3.6.3\apache-maven\bin\.. Java 版本:1.8.0_232,供应商:AdoptOpenJDK,运行时:C:\Program Files\AdoptOpenJDK\jdk-8.0.232.09-hotspot\jre 默认语言环境:en_US,平台编码:Cp1250 操作系统名称:“windows 10”,版本:“10.0”,arch:“amd64”,系列:“windows”
根据您的网络设置,您可能需要额外的配置。 请查看 的 配置 Maven 指南 如有必要, 。
如果您使用的是 Windows,您应该查看 Windows 先决条件 以确保您准备好在 Windows 上使用 Maven。
创建项目
您需要在某个地方放置您的项目。 在某处创建一个目录并在该目录中启动一个 shell。 在命令行上,执行以下 Maven 目标:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
如果您刚刚安装了 Maven,第一次运行可能需要一段时间。 这是因为 Maven 正在将最新的工件(插件 jar 和其他文件)下载到您的本地存储库中。 您可能还需要多次执行该命令才能成功。 这是因为远程服务器可能会在您的下载完成之前超时。 别担心,有办法解决这个问题。
您会注意到 generate 目标创建了一个与 artifactId 同名的目录。 切换到那个目录。
cd 我的应用程序
在此目录下,您会注意到以下 标准项目结构 。
我的应用程序
|-- pom.xml
`-- 源代码
|-- 主要
| `--java
| `--com
| `--我的公司
| `-- 应用程序
| `--App.java
`-- 测试
`--java
`--com
`--我的公司
`-- 应用程序
`--AppTest.java
The src/main/java directory contains the project source code, the src/test/java directory contains the test source, and the pom.xml file is the project's Project Object Model, or POM.
The pom.xml file is the core of a project's configuration in Maven. It is a single configuration file that contains the majority of information required to build a project in just the way you want. The POM is huge and can be daunting in its complexity, but it is not necessary to understand all of the intricacies just yet to use it effectively. This project's POM is:
- <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> com.mycompany.app </groupId>
- <artifactId> 我的应用程序 </artifactId>
- <版本> 1.0-快照 </version>
- <属性>
- <maven.compiler.source> 1.7 </maven.compiler.source>
- <maven.compiler.target> 1.7 </maven.compiler.target>
- </属性>
- <依赖>
- <依赖>
- <groupId> junit </groupId>
- <artifactId> junit </artifactId>
- <版本> 4.12 </version>
- <范围> 测试 </范围>
- </依赖>
- </依赖>
- </项目>
您执行了 Maven 目标 archetype:generate ,并将各种参数传递给该目标。 前缀 原型 是 的 插件 提供目标 。 如果您熟悉 Ant ,您可能会认为这类似于任务。 这个 原型:生成 目标创建了一个基于 的简单项目 maven-archetype-quickstart 原型 。 现在可以说 插件 是 的 集合 目标 具有通用共同目的 。 例如jboss-maven-plugin,其目的是“处理各种jboss项目”。
mvn 包
命令行将打印出各种操作,并以以下内容结束:
... [信息] ----------------------------------------------- ------------------------- [信息] 构建成功 [信息] ----------------------------------------------- ------------------------- [信息] 总时间:2.953 秒 [INFO] 完成时间:2019-11-24T13:05:10+01:00 [信息] ----------------------------------------------- -------------------------
与执行的第一个命令( 不同,第二个命令 archetype:generate ) 只是一个单词 - package 。 不是一个 而是 目标 这 , 一个 阶段 。 阶段是 中的一个步骤 构建生命周期 ,它是一个有序的阶段序列。 当给出一个阶段时,Maven 执行序列中的每个阶段,直到并包括定义的阶段。 例如,如果您执行 编译 阶段,实际执行的阶段是:
- 证实
- 生成源
- 流程来源
- 生成资源
- 流程资源
- 编译
您可以使用以下命令测试新编译和打包的 JAR:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
这将打印精髓:
你好世界!
Java 9 或更高版本
默认情况下,您的 Maven 版本可能使用旧版本的 maven-compiler-plugin与 Java 9 或更高版本不兼容。 要面向 Java 9 或更高版本,您至少应该使用 3.6.0 版 maven-compiler-plugin并设置 maven.compiler.release您所针对的 Java 版本的属性(例如 9、10、11、12 等)。
在以下示例中,我们已将 Maven 项目配置为使用 3.8.1 版 maven-compiler-plugin并以 Java 11 为目标:
- <属性>
- <maven.compiler.release> 11 </maven.compiler.release>
- </属性>
- <构建>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
To learn more about javac's --release option, see JEP 247.
Running Maven Tools
Although hardly a comprehensive list, these are the most common default lifecycle phases executed.
- validate: validate the project is correct and all necessary information is available
- compile: compile the source code of the project
- test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
- package :将编译后的代码打包成可分发的格式,例如 JAR。
- 集成测试 :如有必要,处理包并将其部署到可以运行集成测试的环境中
- 验证 :运行任何检查以验证包是否有效并符合质量标准
- install : 将包安装到本地仓库中,作为本地其他项目的依赖
- deploy :在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。
除了 的 之外,还有另外两个值得注意的 Maven 生命周期 默认 上面 列表 。 他们是
- clean :清除先前构建创建的工件
- site : 为这个项目生成站点文档
阶段实际上映射到潜在目标。 每个阶段执行的具体目标取决于项目的打包类型。 例如, , ,则 package 将 执行 执行 jar:jar 如果项目类型是 JAR , war:war 如果项目类型是 - 你猜对了 - WAR 。
需要注意的一件有趣的事情是阶段和目标可以按顺序执行。
mvn clean dependency:copy-dependencies包
此命令将清理项目、复制依赖项并打包项目( 执行到 所有阶段 package 之前的 当然, )。
网站
此阶段根据项目的 pom.xml 信息生成站点。 您可以查看下生成的文档 target/site.
结论
我们希望这个快速概述已经激起了您对 Maven 多功能性的兴趣。 请注意,这是一个非常简短的快速入门指南。 现在您已准备好了解有关您刚刚执行的操作的更全面的详细信息。 查看 Maven 入门指南 。
903

被折叠的 条评论
为什么被折叠?



