文章目录
-
- [创建 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 件事情:
-
你的项目最终是打成 jar 包,还是打成 war 包;
-
你的项目的目录结构。
[!‼] 重要
「骨架决定了你的项目的类型(和目录结构)」这只是表像!真正起作用的是
<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
包。