Maven基础之项目创建、packaging

文章目录

    • [创建 maven 项目流程](#创建 maven 项目流程)
    • [骨架是浮云,packaging 是关键](#骨架是浮云,packaging 是关键)

创建 maven 项目流程

通过骨架(archetype)创建 maven 工程

  • 第一步:选择 new → maven → Maven Project

  • 第二步 :New Maven Project 窗口不作任何设置,直接 Next 。

  • 第三步 :选择 maven 的工程骨架,这里我们选择 quickstart ,点击 Next 。

  • 第四步 :输入 GroupId 、ArtifactId 、Version 、Package 信息点击 finish 完成。

其项目目录结构如下:

text 复制代码
my-app
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── xxx
    │           └── yyy
    │               └── zzz
    │                   └── App.java
    └── test
        └── java
            └── xxx
                └── yyy
                    └── zzz
                        └── AppTest.java

⚠ 注意

maven 项目有"固定的目录结构,与开发工具无关"。无论使用 Eclipse 还是 Intellij IDEA 都是如上的目录结构。

骨架是浮云,packaging 是关键

骨架(archetype)会影响你的 maven 项目的 pom.xml 配置文件的 <packaging>...</packaging> 元素的值,这个值决定了:你的项目是 java 项目,还是 java web 项目 。

而你的项目是 java 项目,还是 java web 项目又决定了以下 2 件事情:

  1. 你的项目最终是打成 jar 包,还是打成 war 包;

  2. 你的项目的目录结构。

!‼ 重要

「骨架决定了你的项目的类型(和目录结构)」这只是表像!真正起作用的是 <packaging> 元素的值。

packaging 元素决定了你的项目结构(的正确性):

text 复制代码
JAR 项目                   WAR 项目
├── pom.xml                ├── pom.xml
└── src                    └── src
    ├── main                   ├── main
    │   ├── java               │   ├── java
    │   └── resources          │   ├── resources
    │                          │   └── webapp  <- 注意
    └── test                   └── test
        ├── java                   ├── java
        └── resources              └── resources
  • maven-archetype-quickstart 骨架会导致 <packaging>jar</packaging> 。而 jar 表示本项目是一个 Java 项目,最终要打成 jar 包。jar 也是也是 <packaging> 的默认值。

  • maven-archetype-webapp 骨架会导致 <packaging>war</packaging> 。而 war 表示本项目是一个 Java Web 项目,最终要打成 war 包。

相关推荐
砚底藏山河5 分钟前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
Cc.Y34 分钟前
Java零基础入门:封装与继承 —— 从“裸奔“到“穿衣服“,从“重复造轮子“到“站在巨人肩膀上“
java·开发语言
Escalating_xu36 分钟前
【C 语言】深入理解指针(4):回调函数、qsort、void * 与泛型排序的模拟实现
java·c语言·开发语言
Shaoshing42 分钟前
雪花算法
java
w_zero_one1 小时前
链表(4)
java·数据结构·算法
见叶之秋1 小时前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
MayBaymax2 小时前
MQ 基础概念与架构
java·中间件·架构·java-rocketmq
Dovis(誓平步青云)2 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
yuniko-n2 小时前
【Java】字符串相关坑点
java·开发语言·python
Terra.K2 小时前
Spring AI day1(SSE+AI)
java·人工智能·spring·springai