当前位置: 首页 > news >正文

Maven创建Java项目实战全流程

目录

一、初始化 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 让多人协作、版本管理、构建部署变得可控。

http://www.dtcms.com/a/481650.html

相关文章:

  • 泉州市住房与城乡建设网站wordpress弹出搜索
  • [创业之路-691]:历史与现实的镜鉴:从三国纷争到华为铁三角的系统性启示
  • 时序数据库选型革命:深入解析Apache IoTDB的架构智慧与实战指南
  • 南通网站制作建设手机网页设计软件下载
  • OpenAI推出即时支付功能,ChatGPT将整合电商能力|技术解析与行业影响
  • 小杰深度学习(seventeen)——视觉-经典神经网络——MObileNetV3
  • 线性代数 | 要义 / 本质 (下篇)
  • C# 预处理指令 (# 指令) 详解
  • 有趣的机器学习-利用神经网络来模拟“古龙”写作风格的输出器
  • AI破解数学界遗忘谜题:GPT-5重新发现尘封二十年的埃尔德什问题解法
  • ui网站推荐如何建网站不花钱
  • Java版自助共享空间系统,打造高效无人值守智慧实体门店
  • 《超越单链表的局限:双链表“哨兵位”设计模式,如何让边界处理代码既优雅又健壮?》
  • HENGSHI SENSE 6.0技术白皮书:基于HQL语义层的Agentic BI动态计算引擎架构解析
  • C#实现MySQL→Clickhouse建表语句转换工具
  • 禁止下载app网站东莞网
  • MySQL数据库精研之旅第十九期:存储过程,数据处理的全能工具箱(二)
  • Ubuntu Linux 服务器快速安装 Docker 指南
  • Linux 信号捕捉与软硬中断
  • Linux NTP配置全攻略:从客户端到服务端
  • 二分查找专题总结:从数组越界到掌握“两段性“
  • aws ec2防ssh爆破, aws服务器加固, 亚马逊服务器ssh安全,防止ip扫描ssh。 aws安装fail2ban, ec2配置fail2ban
  • F024 CNN+vue+flask电影推荐系统vue+python+mysql+CNN实现
  • 谷歌生成在线网站地图买外链网站
  • Redis Key的设计
  • Redis 的原子性操作
  • 竹子建站免费版七牛云cdn加速wordpress
  • python进阶_Day8
  • 在React中如何应用函数式编程?
  • selenium的css定位方式有哪些