Maven是一个项目管理工具,它基于POM (Project Object Model) 和一组插件来构建项目,Maven能够处理项目的编译、报告和文档记录,自动管理项目构建的整个周期。

Maven 编译 Java 项目
安装 Maven
在开始使用Maven之前,需要确保你的机器上已经安装了Java Development Kit (JDK) 和 Maven,你可以通过以下命令检查是否已安装:
java -version mvn -version
如果未安装Maven,请从[Maven官方网站](https://maven.apache.org/download.cgi)下载并按照说明进行安装。
创建 Maven 项目
我们需要创建一个基本的Maven项目结构,通过运行以下命令,我们可以生成一个包含基本目录结构的项目框架:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这将创建一个新的Maven项目,其中包含了以下基本结构:
src/main/java/: 存放Java源代码
src/test/java/: 存放测试代码

pom.xml: Maven的项目对象模型文件
编写 Java 代码
在src/main/java/com/mycompany/app目录下创建你的Java类,例如App.java:
package com.mycompany.app;
public class App {
public static void main(String[] args) {
System.out.println("Hello, Maven!");
}
}
配置 POM 文件
打开项目根目录下的pom.xml文件,确认或添加以下配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
<!-省略其他配置 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source> <!-指定JDK版本 -->
<target>1.8</target> <!-指定JDK版本 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
编译 Java 项目
我们准备编译项目,在命令行中,导航到项目根目录并运行:
mvn compile
Maven会下载必要的依赖项,然后编译项目源码,编译成功后,编译后的.class文件会出现在target/classes目录下。
运行 Java 程序

要运行编译后的程序,可以使用以下命令:
mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
这会执行com.mycompany.app.App类的main方法,你应该能在控制台上看到 "Hello, Maven!" 的输出。
单元表格
| 步骤 | 命令 | 描述 |
| 安装 Maven | mvn -version |
检查 Maven 是否已安装 |
| 创建项目 | mvn archetype:generate ... |
创建 Maven 项目框架 |
| 编写代码 | 编辑App.java |
编写 Java 应用程序代码 |
| 配置 POM | 编辑pom.xml |
配置 Maven 的编译插件 |
| 编译项目 | mvn compile |
使用 Maven 编译项目 |
| 运行程序 | mvn exec:java ... |
运行编译后的 Java 应用程序 |
相关问题与解答
Q1: 如果我想使用不同版本的JDK编译项目,我应该如何修改pom.xml?
A1: 在pom.xml文件中,找到maven-compiler-plugin的配置部分,修改<source>和<target>标签内的值为你想要使用的JDK版本,如1.7或11。
Q2: 我如何添加第三方库作为项目的依赖?
A2: 在pom.xml文件的<dependencies>部分内添加新的<dependency>元素,并设置groupId、artifactId和version来指定所需的库,添加JUnit库可以这样写:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>