视频教程:Maven保姆级教程
Maven入门教程(一):安装Maven环境
Maven入门教程(二):idea/Eclipse使用Maven
Maven入门教程(三):Maven语法
Maven入门教程(四):Nexus私服
Maven入门教程(五):自定义脚手架
4.开发工具配置
4.1 idea配置
idea有多个版本,配置是一样的,只是配置页面的入口不一样
旧版idea
新版idea
4.2 Eclipse配置
打开Eclipse,菜单中选择:Window -> Preference -> Maven -> Installation -> Add
5. 创建工程
Maven工程的项目和传统Eclipse创建的项目不同,目录上有区别。
传统项目中src下面放所有的java代码。而Maven项目中将java代码和配置文件分开。
src/main/java:是写java代码的目录,里面可以创建package和class文件。
src/main/resources:写配置文件的地方,一般xml和properties都放在这里。
src/test/java:是测试目录,如用junit测试的时候测试代码可以写在这。
src/test/java:是测试资源目录,如用junit测试的时候xml和properties都放在这里。
Maven项目和传统项目的对比:
5.1 idea创建标准工程
5.1.1 旧版idea
点击Next
如果创建成功,会在IntelliJ中看到完整的目录结构。
如果创建失败,可以在控制台中查看EventLog
有些资源Maven需要联网下载,如果download失败,项目可能创建失败。
如果创建同名的工程也会报错,如下:
此时需要删除工程目录下对应的文件夹,并删除回收站中对应的文件。
右键单击main->New->Directory
右键java文件夹->Mark Directory As ->Sources Root将文件夹更改成源码文件
右键resources->Mark Directory As –>Resources Root
java文件夹下用于存放package,相当于eclipse普通工程中的src目录。
resources中用于存放配置文件和属性文件。
还可以在src下创建test文件夹,用于junit测试。test下同样创建java和resources
也可以右键项目-选择Open Module Settings打开项目配置页面更改
5.1.2 新版idea
可以在目录上右键->Mark Directory As ,选择设置或取消资源目录
5.2 idea创建传统web工程
pom中添加
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
项目的src/main下创建webapp目录结构
5.3 Eclipse创建标准工程
右键->New Maven Project,如果右键菜单里没有,就在Other里找
如果某个文件加没有被标记为source目录,可以在项目上右键->Properties->Java Build Path
5.4 Eclipse创建传统Web项目
右键->New->Maven Project,如果右键菜单里没有,就在Other里找
创建web项目后,pom.xml中有一个报错:
意思是web项目必须有一个web.xml。
所以我们要自己创建web目录:
web.xml和传统项目中一样:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
</web-app>
在webapp下创建index.jsp
会发现jsp文件有报错:
因为我们没有引用servlet相关的jar。Maven项目中没有lib文件夹,因为它不需要把jar包复制到工程中。
在pom.xml中添加如下配置:
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>