文章目录
-
- 一、创建 JavaSE Maven项目
- 二、在eclipse中创建 web maven项目
- 三、maven父项目管理依赖,项目类型选择pom
- 四、注意事项
- 五、Maven项目中pom.xml文件配置
一、创建 JavaSE Maven项目
- 右键→new→project→Maven→Maven Project
- 勾选红线选项
Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
GroupId:groupId是一个工程组在全局中唯一的标识符。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
Artifact:artifact 是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中,否则Maven无法找到 (识别)它们。
Dependency:为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。
Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
Repository:仓库。
3.
pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,指示Maven工作的元数据文件。
节点介绍
:文件的根节点 .
<project >
: pom.xml使用的对象模型版本 .
<modelversion >
:创建项目的组织或团体的唯一 Id.
<groupId >
:项目的唯一 Id, 可视为项目名 .
<artifactId >
:打包类型,一般有JAR,WAR,EAR 等
<packaging >
:产品的版本号 .
<version >
:项目的显示名,常用于 Maven 生成的文档。
<name >
:组织的站点,常用于 Maven 生成的文档。
<url >
:项目描述,常用于 Maven 生成的文档。
<description >
构件依赖的配置,在pom.xml中配置,配置在dependencies节点中(重点)
通过配置坐标引入构件(groupid artifactid version),如:
<dependency>
<groupId>com.aowin</groupId>
<artifactId>helloworld</artifactId>
<version>0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
二、在eclipse中创建 web maven项目
-
右键----maven project —> package类型选择war
默认项目有红叉:
war表示当前的项目 是一个web项目,默认规则在webapp下面应该有web.xml, 在新版本的web项目中很多采用注解形式,不再用配置,不需要web.xml
没有的情况下如果需要web.xml,可以自己补充:在webapp下创建目录WEB-INF,在这个目录下增加web.xml
如果确实不需要web.xml,可以增加配置
<properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties>
如果构建的是web项目,需要添加servlet jsp依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
- 如果web版本3.0以上不会自动创建web.xml,pom.xml报错
解决方式:<failOnMissingWebXml>
- 添加web.xml====>src/main/webapp/WEB-INF
-
增加配置:
在pom.xml中增加配置:
<properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties>
三、maven父项目管理依赖,项目类型选择pom
- 设置需要的依赖的版本,子项目中可省略版本设置
- 父项目中增加dependencyManagement
<packaging>pom</packaging>
<properties>
<spring.version>5.1.6.RELEASE</spring.version>
<mybatis.version>3.5.2</mybatis.version>
<mysql.version>5.1.47</mysql.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
- 子项目中通过parent节点添加依赖父项目
<parent>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</parent>
四、注意事项
- 创建过程中,如果是第一次创建,会自动下载依赖的包,需要等待一些时间。
- 如果在Tomcat中已经配置了相关的jar包,则需要加
<scope>provide</scope>