我是靠谱客的博主 高高花生,最近开发中收集的这篇文章主要介绍Eclipse+Maven+Tomcat 集成开发环境配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Eclipse中创建的Dynamic Web Project 类型的Web 项目, 通过Run As -> Run on Server 可以添加本地安装的Tomcat,在Eclipse 中启动Tomcat 进行整合开发。
在这里插入图片描述

但是如果创建的是Maven类型的项目,如果没有导入额外的包还正常, 但是只要在pom.xml 中引入了其他的包,会报找不到Class的错误, 如下图:
在这里插入图片描述

如果在Eclipse 中对Maven 类型的项目可以直接整合Tomcat 运行呢?首先来看看两者的项目的结构。

项目结构比较

为了开发的结构清晰和区别度, 在 Eclipse中看到的项目的结构和实际的文件结构有一些差异, 而不同类型的项目的结构也是不同的。

Maven类型的项目结构如下:

在这里插入图片描述

其结构的特点是:

  1. 分离了Java代码和配置文件, 也就是src/main/java 和src/main/resources
  2. 注重单元测试, 有src/test 目录
  3. Web资源相关的文件在src/main/webapp 下进行添加。

Dynamic Web Project类型的结构如下

在这里插入图片描述

动态Web 项目主要分为java 代码(src)和Web内容(WebContent)。

Eclipse 项目结构揭秘

Eclipse 是如何定义项目的类型的呢? 答案就是项目里的 .project 文件来记录的, 以动态Web项目为例, 该文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>myapp</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.common.project.facet.core.builder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.validation.validationbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
	</natures>
</projectDescription>

而对于Maven类型的项目, .project 的内容则类似:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>javaweb</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.common.project.facet.core.builder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.validation.validationbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.m2e.core.maven2Builder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.m2e.core.maven2Nature</nature>
		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
	</natures>
</projectDescription>

可以看到, Maven 类型的项目的nature 有org.eclipse.m2e.core.maven2Nature, 构建命令(buildCommand)则包含 org.eclipse.m2e.core.maven2Builder

在Maven项目中集成Tomcat 服务器

在Eclipse中可以直接运行动态Web项目,而不需要把Web项目打包到服务器目录中, 方式是右键单击项目,选择 Run As -> Run On Server, 如下图:

在这里插入图片描述

在弹出的对话框中, 选择对应的 Tomcat版本和本地Tomcat的路径,类似:
在这里插入图片描述

这里就遇到了开篇的问题, 如果是Maven类型的项目, 通过这种方式会找不到pom.xml 导入的第三方包,何也? 因为这是两种不同类型的项目。有解法吗? 当然有。

很简单, 右键单击项目, 选择 “Properties”, 在弹出对话框选择“Deployment Assembly”, 点击右边的 “Add”按钮, 在弹出框种选择 “Java Build Path Entries”, 将Maven Dependencies 添加进来。
整个步骤的目的就是: 将Maven的依赖项添加到动态项目的lib 目录中, 操作的界面如下:

在这里插入图片描述

在这里插入图片描述



最后

以上就是高高花生为你收集整理的Eclipse+Maven+Tomcat 集成开发环境配置的全部内容,希望文章能够帮你解决Eclipse+Maven+Tomcat 集成开发环境配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部