0.Maven简介
三种仓库:
核心配置文件:
生命周期:
1.下载Maven与本地仓库(要求JDK1.7及以上)
2.解压
3.配置环境变量(2个,前提是java已经配置好)
4.检查环境变量是否配置好
5.Maven 集成到 Eclipse
修改eclipse默认的maven版本
修改本地仓库的路径(apache-maven-3.3.9\conf\settings.xml)
将配置文件设为刚才修改过的
6.新建一Maven项目
建议:勾选上Create a simple project(skip archetype selection),
即跳过原型选项或跳过骨架选项
其中:
(1)Group Id:当前 Maven 项目隶属的实际项目
(2)Artifact Id:当前 Maven 项目(也称 模块)
(3)Version:当前 Maven 项目的版本号
1)SNAPSHOT:快照版本,即 测试版本
2)RELEASE:发布版本,即 正式版本
(4)Packaging:当前 Maven 项目的打包方式,有三种:jar、war、pom,打包方式决定了当前Maven 项目的性质
1)jar:Java 项目
2)war:Web 项目
3)pom:父项目(用于 Maven 项目的继承)
(5)Name:当前 Maven 项目的显示名,常用于 Maven 生成的文档
(6)Description:当前 Maven 项目的描述,常用于 Maven 生成的文档
其中有两个错误:
(1)没有部署描述文件web.xml,解决方法:
选择项目名,右键->Java EE Tools->Generate Deployment
Descriptor Stub,将自动在webapp 目录下生成 WEB-INF
目录 和 web.xml 文件
(2)Maven 默认的JDK 版本是 1.5,需要将其修改为本机的 JDK 版本
法一:在pom.xml 的 project 标签中添加如下内容:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
法二:在settings.xml 的 profiles 标签中添加如下内容(建议):
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
添加完成后,还要做操作:选择项目名,右键->Maven->Update Project…
7.手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件(添上之后上面的红线就没了)
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_3_0.xsd" id="WebApp_ID" version="3.0"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
8.处理编译版本
在pom.xml中添加如下代码
<build> <!-- 配置了很多插件 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
9.创建servlet
发现会报错,缺少servlet-api包
在pom中添加如下代码:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
手动更新一下项目
10.项目结构
11.启动项目测试
有时候端口被占,暂且通过netstat -ano查找进程id,然后taskkill /f /pid xxxx杀死进程。
C:\Users\XX>netstat -ano|grep 8080 C:\Users\XX>taskkill -pid 413984 -f
补充:maven内置变量
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容