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> 元素的值。

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

相关推荐
黑马程序员毕设3 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳3 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥3 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
devpotato3 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl09254 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk4 小时前
Java--IO--Path文件访问
java·后端
qinqinzqq4 小时前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven
o盟4 小时前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea
devpotato4 小时前
Java 批量并发请求:从“能并发“到“结果按完成顺序可用“的三种写法与选型
java
苏生Susheng5 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施