Maven基础之项目创建、packaging

文章目录

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

创建 maven 项目流程

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

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

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

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

  • 第四步 :输入 GroupIdArtifactIdVersionPackage 信息点击 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 元素决定了你的项目结构(的正确性):

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 包。

相关推荐
脸大是真的好~1 小时前
黑马JAVAWeb-01 Maven依赖管理-生命周期-单元测试
java·maven
zhangkaixuan4562 小时前
Apache Paimon 查询全流程深度分析
java·apache·paimon
cici158743 小时前
MyBatis注解的运用于条件搜索实践
java·tomcat·mybatis
wangqiaowq3 小时前
StarRocks安装部署测试
java·开发语言
计算机学姐3 小时前
基于SpringBoot的高校社团管理系统【协同过滤推荐算法+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
工业甲酰苯胺7 小时前
实现 json path 来评估函数式解析器的损耗
java·前端·json
老前端的功夫7 小时前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js
@forever@7 小时前
【JAVA】LinkedList与链表
java·python·链表
LilySesy7 小时前
ABAP+WHERE字段长度不一致报错解决
java·前端·javascript·bug·sap·abap·alv
六件套是我7 小时前
redission实现延时队列
android·java·servlet