Skip to content

Maven

约 522 个字 19 行代码 预计阅读时间 2 分钟

简介

文件组织

Maven是当今Java开发中主流的依赖管理工具,Maven,IDEA 安装时自带了默认的Maven

alt text

使用Maven管理的java项目,它的目录结果大概是

项目根目录/
├── pom.xml
├── src/
│   ├── main/
│   │   ├── java/            # 主代码目录
│   │   └── webapp/          # Web 应用的资源目录(如果是 Web 项目)
│   └── test/
│       ├── java/            # 测试代码目录
│       └── resources/       # 测试资源文件
└── target/                  # 构建输出目录(编译后的类文件、打包的 JAR/WAR 等) 

  • pom.xml是 Maven 项目的核心配置文件,定义了项目的依赖、插件、构建配置等信息
  • src/main/java,存放项目的主代码(Java 源文件),按照包结构组织
  • src/main/webapp,如果是一个 Web 项目(如 Servlet、Spring MVC 等),这个目录会存放 Web 相关的资源,如 WEB-INF/web.xml、JSP 文件、静态资源(HTML、CSS、JS 等)
  • src/test/java,存放测试代码(如 JUnit 测试类),通常与主代码的包结构一致
  • src/test/resources,存放测试所需的资源文件,如测试用的配置文件或数据文件
  • target,这是 Maven 构建过程中生成的输出目录,包含编译后的类文件、打包的 JAR/WAR 文件、测试报告等。

jar

JAR(Java Archive)是一种用于打包Java类文件、资源文件和元数据的压缩文件格式,通常以.jar为扩展名。它基于ZIP格式,能够将多个文件合并为一个文件,便于分发和部署Java应用程序。

pom.xml

当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需要的配置信息,然后执行目标,Maven 会自动从中央仓库下载依赖并存储到本地仓库。在创建 POM 之前,首先确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。这里以获取mysql的驱动jar为例

<dependencies>
    <dependency>
        <!--工程组的标识,它在一个组织或者项目中通常是唯一的,公司或域名倒序+项目名-->
        <groupId>mysql</groupId>
        <!--工程的名称,模块名-->
        <artifactId>mysql-connector-java</artifactId>
        <!--工程的版本号-->
        <version>8.0.31</version>
        <!--scope标签代表指定依赖范围-->
        <scope>runtime</scope>
    </dependency>
    ...
</dependencies>

常用指令

编译项目

mvn compile

测试项目

mvn test

打包项目

mvn package
生成 JAR 文件在 target/ 目录下

安装到本地目录

mvn install

清理项目

mvn clean
删除 target/ 目录

运行项目

mvn exec:java -Dexec.mainClass=""