JavaWeb——Maven使用
5.1、创建一个javaWeb项目
-
选择使用摸版:勾选
Create from archetype
选项 -
选择相应的模板:选择
org.apache.maven.archetypes:maven-archetype-webapp
-
创建目录GAV
- GroupId:组id
- ArtifactId:项目名
- 版本
-
maven选项:
- maven目录
- 用户设置文件地址
- 本地仓库
注:Bundled(Maven 3)是IDEA自带的Maven
-
目录结构
-javaWebLearning -.idea -src -main -webapp -WEB-INF -web.xml javaWeb项目的配置文件 -index.jsp 主页 -pom.xml
注意:通过该方法生成的Maven项目是不完整的(见下)
建议:
- 不要使用IDEA自带的maven
- 建议直接使用的maven的conf目录下的setting.xml配置文件
5.2、创建一个普通的Maven项目
-
目录结构
-testLearning -.idea 表示该项目被idea接管 -src -main -java 项目源码目录 -resources 配置文件 -test -java 测试源码目录 -pom.xml 配置文件
注:体现了Maven的约定大于配置的核心思想
-
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <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"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>testLearning</artifactId> <version>1.0-SNAPSHOT</version> </project>
5.3、将5.1创建的javaWeb项目更改成一个普通的web项目
对比上下两个文件夹可知,5.2的文件夹需要追加java(项目源码)目录和test-java(测试源码)目录
-
创建相关的目录
-
将目录进行标记
对比真正的maven项目我们还可以发现,java的源码目录应该是蓝色的,而目前创建的目录是灰色的且无法新建类.为此,我们还需要对它进行标记
-
右键点击文件夹
-
选择
Mark Directory AS
-
有多个选项
Sources Root:源码目录(蓝色) Test sources Root:测试文件目录(绿色) Resources Root:资源目录 Test Resources Root:测试资源目录
-
或者:
File
->Project Structure
->Modules
-> 根据项目目录结构点击Mark As
对应的选项进行修改
-
5.4、配置Tomcat
-
点击右上角的
Add Configuration
,选择Templates下的Tomcat server,Local
.由于如果你没有默认的Tomcat配置,点击create configuration
-
- Name可以随意填写
- Application server选择下载的Tomcat位置
- JRE选择相应的版本
- HTTP port:tomcat启动的端口号配置,根据实际需要修改(避免被占用)
-
Deployment(注意到我们还需有问题需要修复)
原因:我们访问网站,需要指定一个文件夹名字
- 选择
Deployment
选项 - 点击
+
号,选择添加artifacts
,选择war做结尾的选项(发布模式,先打成war包再发布) Application context
是访问路径,可以写也可以不写.比如写了/guan
,那么应该访问localhost:8082/guan
,这个过程叫做虚拟路径映射
- 选择
5.5、Maven侧边栏的使用
Lifecycle Maven命令行
clean 清理target
compile 编译
test 测试
package 打包
install 安装
plugins 插件
Dependencies 项目依赖
5.6 pom文件
功能:Maven项目的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<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">
<modelVersion>4.0.0</modelVersion>
<!-- 创建项目时配置的GAV-->
<groupId>org.example</groupId>
<artifactId>JavawebLearning</artifactId>
<version>1.0-SNAPSHOT</version>
<!--package:项目的打包方式
java:java应用
war:javaweb应用
-->
<packaging>war</packaging>
<name>JavawebLearning Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!-- 配置-->
<properties>
<!-- 项目构建的默认编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- 项目依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 项目构建用的东西-->
<build>
<finalName>JavawebLearning</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
注:Maven的高级之处在于,他会帮你导入这个JAR包所依赖的其它jar包
5.7、将一个普通的maven项目转换为appweb项目
注:由于普通的maven项目和由maven的appweb模板创建的maven项目的区别,不推荐使用模板,推荐将一个普通的maven项目转换成web项目
5.8、资源导出问题
需要对pom.xml进行配置:在build中配置resources,来放置我们资源导出失败的问题(比如在java文件夹下的xml文件)
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
5.9 、Maven操作
查看目录树:点击idea中maven的右上角按钮