天天看点

【Java】在Eclipse创建Maven项目

文章目录

    • 一、创建 JavaSE Maven项目
    • 二、在eclipse中创建 web maven项目
    • 三、maven父项目管理依赖,项目类型选择pom
    • 四、注意事项
    • 五、Maven项目中pom.xml文件配置

一、创建 JavaSE Maven项目

  1. 右键→new→project→Maven→Maven Project
    【Java】在Eclipse创建Maven项目
  2. 勾选红线选项
    【Java】在Eclipse创建Maven项目

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:仓库。

【Java】在Eclipse创建Maven项目

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文件配置