本文参考原文链接:https://blog.csdn.net/m0_37292477/article/details/98625946,对后面部分做了些调整。
一、环境
win10
Java 1.8
Maven 3.5, 3.6.0
Tomcat 8.0.47 , 8.5.42 都可以,这个tomcat-maven插件本身也是tomcat7插件,所以也应该适应tomcat7
Eclipse IDE for Java EE Developers
二、准备
安装、配置好JDK、Eclipse、Maven、Tomcat
三、使用Maven搭建JavaWeb项目——HelloWorld示例
1、新建Maven工程
点击File,New,Other,Maven Project,
Next,模板原型默认选择quickstart(网上很多教程说选择webapp模板,但该模板的web和jdk版本低,需要重新配置版本,有时还需要手动修改.setting下的文件,比较复杂,倒不如直接从quickstart开始,之后再自行配置为JavaWeb项目),
Next,输入包名、工程名、package,点击Finish。
2、配置JavaWeb模块
建好之后,右键工程,点击“properties”,选择“project facets”。
点击“Convert to faceted form…”
1)将java版本改为1.8。
2)将dynamic web module选择对应的版本(我选用了3.1,对应pom.xml文件中servlet的版本),并勾选dynamic web module该项。
3)右侧点击runtimes选项卡,勾选tomcat版本。
此时下方会弹出web模块配置词条,可以根据需要点击该词条,修改web模块的存放路径。默认生成WebContent目录,建议改为src/main/webapp,否则默认的目录结构会出现重复,总之选择其一,另一个删除,勾选下方单选框会生成web.xml部署描述符文件。
点击ok,点击apply,点击apply and close,设置结束。
【TIP】
不点击该词条时,eclipse会默认给JavaWeb项目生成WebContent目录,但不会生成web.xml文件。可通过点击工程名,右键,点击“Java EE Tolls”,点击“generate Deployment…”的方式生成web.xml。
3、编辑webapp\WEB-INF\web.xml文件
可以修改web应用的名称,配置过滤器、监听器等,本示例项目功能简单,暂不需要修改web.xml。
4、在Eclipse中使用Maven配置Tomcat8.5
第一步:配置Tomcat用户访问权限
首先,我们需要先打开 Tomcat 的 manager 功能,在tomcat安装目录找到 conf 文件夹下的 tomcat-users.xml 文件中的 标签,然后添加如下内容(可以直接在其文档注释部分找到对应的模版,然后进行修改):
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user password="123456" username="admin"
roles="manager-gui,manager-script,manager-jmx,manager-status" />
配置好之后,ctrl+s 保存文件。紧接着,双击 tomcat 解压包中 bin 目录下的 startup.bat 命令进行启动Tomcat服务器。在浏览器地址来中进行访问
http://localhost:8080/manager
按下 Enter 回车键,即可看到弹窗,需要我们输入上面配置好的用户名和密码,才能进行登录,如果顺利则请进入下一步。
第二步:配置Maven的settings.xml
在maven安装目录的 conf/settings.xml 文件中的标签 添加子标签。通过标签名字,我们知道这主要是为了让 maven 去关联我们的 Tomcat 服务器。
注意,这里配置的 username 和 password 一定要和 tomcat 中的 tomcat_user.xml 中一致,否则关联不起来。
<server>
<id>tomcat8</id>
<username>admin</username>
<password>123456</password>
</server>
5、配置pom.xml
附pom.xml文件
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>HelloWorld</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>HelloWorld Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<finalName>HelloWorld</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat8</server>
<username>admin</username>
<password>123456</password>
<path>/demo</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
根据配置,tomcat-maven插件会通过http://localhost:8080/manager/text这个api,将打包文件进行上传,因此它可以绕过远程服务器的账号封锁,并且不利于多人进行部署。
6、编写前端页面
在\WebContent目录下,右键,新建,Other,输入jsp,新建JSP FIle,名字为index.jsp
修改各处的编码方式为UTF-8,在body体内添加一行代码。
index.jsp代码如下
<html>
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
7、启动外部tomcat
进入tomcat的bin目录,运行startup.bat
8、用Maven build项目并部署到外部tomcat服务器
在项目上右键 run as -> run configuration ,选择maven build,右键new 一个configuration,在Goals,输入:clean install compile tomcat7:deploy, 后续再运行,将deploy改为redeploy.
8、运行后,console平台输出 build sucess,验证发布是否成功
在浏览器里输入 localhost:8080/HelloWorld/index.jsp,
如果显示: hello world,则成功。