maven在eclipse中创建web工程

在 Eclipse 里使用 Maven

通常,创建一个简单 Maven 项目目录相对完整,若需额外的文件目录自己手动创建就好了,不推荐使用模板创建maven项目

一. 在 Eclipse 里创建web工程

  

创建好之后 会有一点小错误(缺少 web.xml ),需要配置之后报错就会消失

生成的 Maven 工程里没有 Tomcat 的运行环境

Eclipse 解决办法:在 BulidPath 里添加

Maven 解决办法:pom.xml 配置依赖包servlet 和 jsp-api  注意 provided

 

	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<!-- servlet -->
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<!-- jsp-api -->
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.1</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

项目结构:

 

二.  pom.xml 的基本了解

Maven里的配置文件主要就两个: settings.xml , 和 pom.xml

settings.xml: 主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;

pom.xml:主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。

 

1. 基础配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<!-- 模型版本。maven2.0必须是这样写,现在是maven2唯一支持的版本 -->
	<modelVersion>4.0.0</modelVersion>

	<!-- 公司或组织的唯一标志(包结构),并且配置时生成的路径也是由此生成 -->
	<groupId>cn.jq.maventest</groupId>
	<!-- 项目名称,一个groupId下若有多个项目,通过artifactId来区分 -->
	<artifactId>maventest</artifactId>
	<!-- 本项目/工程的版本号 snopshot: 处于开发阶段的测试版本,不稳定的 release: 发布版本,稳定的 -->
	<version>0.0.1-SNAPSHOT</version>
	<!-- 打包机制:jar(普通java工程),war(web工程),pom(父工程) -->
	<packaging>war</packaging>

	<!-- 定义本项目的依赖关系 -->
	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<!-- maven中的依赖关系有作用域(scope)的限制。 -->  
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>

2. scope 的分类:

scope包含如下的取值:compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围,不常用,通过其他可以代替)

compile:默认是compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。主程序有效, 测试程序有效, 要打包, 要部署

test:表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。主程序无效, 测试程序有效, 不要打包, 不部署, 比较典型的如junit。

runntime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。另外runntime的依赖通常和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。

provided:意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。主程序有效, 测试程序有效, 不被打包, 不要部署

system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

scope的依赖传递

A依赖B,B依赖C。当前项目为A,只当B在A项目中的scope,那么c在A中的scope是如何得知呢?

当C是test或者provided时,C直接被丢弃,A不依赖C;(排除传递依赖)

否则A依赖C,C的scope继承与B的scope

 

3. properties 标签在 pom.xml 定义一些常量, 方便管理,通过 el 表达式访问。

	<properties>
		<!-- 自定义标签名 -->
		<maven.servlet.version>3.1.0</maven.servlet.version>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<!-- 直接引用pom定义的常量  -->
			<version>${maven.servlet.version}</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

 

三. 在 Eclipse 里使用Maven命令

常用的 maven 命令如下:

Maven命令列表

mvn –version

显示版本信息

mvn clean

清理项目生产的临时文件,一般是模块下的target目录

mvn compile

编译源代码,一般编译模块下的src/main/java目录

mvn package

项目打包工具,会在模块下的target目录生成jar或war等文件

mvn test

测试命令,或执行src/test/java/下junit的测试用例.

mvn install

将打包的jar/war文件复制到你的本地仓库中,供其他模块使用

mvn deploy

将打包的文件发布到远程参考,提供其他人员进行下载依赖

mvn site

生成项目相关信息的网站

mvn eclipse:eclipse

将项目转化为Eclipse项目

mvn dependency:tree

打印出项目的整个依赖树  

mvn archetype:generate

创建Maven的普通java项目

mvn tomcat:run

在tomcat容器中运行web应用

mvn jetty:run

调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用

注意:运行maven命令的时候,首先需要定位到maven项目的目录,也就是项目的pom.xml文件所在的目录。否则,必以通过参数来指定项目的目录。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值