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

相关推荐
弥巷2 分钟前
【Android】常见滑动冲突场景及解决方案
android·java
间彧15 分钟前
GraalVM 深度解析:下一代 Java 技术平台
java
合作小小程序员小小店33 分钟前
网页开发,在线%旧版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·servlet·eclipse·jdk·旅游·jsp
20岁30年经验的码农42 分钟前
Java Sentinel流量控制与熔断降级框架详解
java·开发语言·sentinel
程序员西西43 分钟前
SpringBoot轻松整合Sentinel限流
java·spring boot·后端·计算机·程序员
q***46521 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
java·数据库·spring boot
Li_7695321 小时前
10分钟快速入手Spring Cloud Config
java·spring·spring cloud
源码技术栈1 小时前
Java基于云计算的社区门诊系统源码 医院门诊系统源码 已实现医保结算 SaaS模式
java·云计算·源码·诊所·门诊·预约挂号·云门诊
程序员西西1 小时前
SpringBoot整合JWT实现安全认证
java·计算机·程序员·编程
袅沫2 小时前
微服务如何进行远程调用其他服务
java·微服务·架构