【Java】在Eclipse创建Maven项目

一、创建 JavaSE Maven项目

  1. 右键→new→project→Maven→Maven Project
    在这里插入图片描述
  2. 勾选红线选项
    在这里插入图片描述

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 > :文件的根节点 .
<modelversion > : pom.xml使用的对象模型版本 .
<groupId > :创建项目的组织或团体的唯一 Id.
<artifactId > :项目的唯一 Id, 可视为项目名 .
<packaging >:打包类型,一般有JAR,WAR,EAR 等
<version > :产品的版本号 .
<name > :项目的显示名,常用于 Maven 生成的文档。
<url > :组织的站点,常用于 Maven 生成的文档。
<description > :项目描述,常用于 Maven 生成的文档。

构件依赖的配置,在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项目

  1. 右键----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>

  1. 如果web版本3.0以上不会自动创建web.xml,pom.xml报错<failOnMissingWebXml>

    解决方式:

  • 添加web.xml====>src/main/webapp/WEB-INF

  • 增加配置:
    在pom.xml中增加配置:
    <properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties>


三、maven父项目管理依赖,项目类型选择pom

  1. 设置需要的依赖的版本,子项目中可省略版本设置
  2. 父项目中增加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>
  1. 子项目中通过parent节点添加依赖父项目
<parent>
		<groupId></groupId>
		<artifactId></artifactId>
		<version></version>
	</parent>

四、注意事项

  1. 创建过程中,如果是第一次创建,会自动下载依赖的包,需要等待一些时间。
  2. 如果在Tomcat中已经配置了相关的jar包,则需要加<scope>provide</scope>

五、Maven项目中pom.xml文件配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走中思考

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值