Maven创建Java项目实战全流程

目录

[一、初始化 Maven 项目](#一、初始化 Maven 项目)

[二、配置 pom.xml(Maven 核心文件)](#二、配置 pom.xml(Maven 核心文件))

三、项目结构调整与编码

四、构建项目

五、运行/部署

[🔑 六、总结流程](#🔑 六、总结流程)


Maven 创建 Java 项目的完整流程的流程分为 5 大阶段:初始化 → 配置 → 依赖管理 → 构建 → 运行/部署。


一、初始化 Maven 项目

  1. 选择 archetype(模板)

    Maven 项目通过 archetype 快速生成标准目录结构和基础文件。

    常用模板:

    • maven-archetype-quickstart → 普通 Java 项目(jar 包)

    • maven-archetype-webapp → Web 项目(war 包)

    • 自定义 archetype → 公司内部通用模板

  2. 创建命令示例

    复制代码
    mvn archetype:generate \
        -DgroupId=com.itranswarp.learnjava \
        -DartifactId=web-servlet-hello \
        -DarchetypeArtifactId=maven-archetype-webapp \
        -DinteractiveMode=false

    参数解释:

    • groupId:组织/公司包名基础路径

    • artifactId:项目名

    • version:版本号(默认为 1.0-SNAPSHOT

    • archetypeArtifactId:项目模板

    • interactiveMode=false:非交互式,直接生成

  3. 生成目录结构(Web 工程示例)

    复制代码
    web-servlet-hello/
    ├─ pom.xml
    ├─ src/
    │  ├─ main/
    │  │  ├─ java/         # 源代码
    │  │  └─ webapp/       # JSP、静态资源
    │  │      └─ WEB-INF/
    │  │          └─ web.xml
    │  └─ test/             # 测试代码
    └─ target/              # 构建输出

二、配置 pom.xml(Maven 核心文件)

  1. 定义基本信息

    复制代码
    <groupId>com.itranswarp.learnjava</groupId>
    <artifactId>web-servlet-hello</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    • packaging 决定打包类型:jarwarpom
  2. 设置编译属性

    复制代码
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
  3. 添加依赖

    Maven 的强大之处在于 依赖管理

    复制代码
    <dependencies>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>5.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    • Maven 会自动下载依赖及其传递依赖到本地仓库 (~/.m2/repository)

    • scope=provided:运行时由服务器提供,不打包到 war


三、项目结构调整与编码

  1. 源代码目录

    复制代码
    src/main/java    -> Java 代码
    src/main/resources -> 配置文件
    src/main/webapp  -> JSP、静态资源、WEB-INF/web.xml
    src/test/java    -> 单元测试
  2. 示例 Servlet

    复制代码
    package com.itranswarp.learnjava;
    
    import jakarta.servlet.http.*;
    import jakarta.servlet.annotation.*;
    
    @WebServlet("/hi")
    public class HelloServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) {
            response.setContentType("text/plain");
            response.getWriter().println("Hello, Servlet!");
        }
    }
  3. 配置 web.xml(可选,Servlet 3.0+ 可以用注解)

    复制代码
    <web-app xmlns="http://jakarta.ee/xml/ns/jakartaee" version="5.0">
    </web-app>

四、构建项目

  1. 命令

    复制代码
    mvn clean package

    阶段说明:

    • clean → 清理旧的 target 文件

    • compile → 编译源代码

    • test → 运行测试(可跳过 -DskipTests

    • package → 按 packaging 打包成 .jar.war

  2. 常用构建命令

    • mvn install → 构建并安装到本地仓库,供其他项目引用

    • mvn deploy → 上传到远程仓库(企业内部使用)

  3. 输出

    复制代码
    target/hello.war

五、运行/部署

  1. Web 工程部署

    • target/hello.war 拷贝到 Tomcat 的 webapps/

    • 启动 Tomcat

    • 浏览器访问:

      复制代码
      http://localhost:8080/hello/hi
  2. 普通 Java 工程

    • 打包成 jar:

      复制代码
      mvn clean package
      java -jar target/xxx.jar

🔑 六、总结流程

Maven 项目创建全流程(概览)

复制代码
选择 archetype → 生成基础目录结构 → 配置 pom.xml → 添加依赖
        ↓
      编写源代码 → 调整目录与资源 → 测试
        ↓
     mvn clean package → 生成可运行包
        ↓
部署/运行 → 本地/服务器
  • Maven 核心思想:标准化 + 自动化 + 依赖管理

  • 企业开发中,Maven 让多人协作、版本管理、构建部署变得可控。

相关推荐
Goldn.18 分钟前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
李慕婉学姐1 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_740043731 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
编织幻境的妖2 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
未若君雅裁2 小时前
JVM面试篇总结
java·jvm·面试
kk哥88992 小时前
C++ 对象 核心介绍
java·jvm·c++
招风的黑耳3 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
xunyan62343 小时前
面向对象(下)-接口的理解
java·开发语言
程序员游老板3 小时前
基于SpringBoot3+vue3的爱心陪诊平台
java·spring boot·毕业设计·软件工程·课程设计·信息与通信
期待のcode3 小时前
Springboot核心构建插件
java·spring boot·后端