前言:
大家都知道,在进行J2EE项目的开发过程中,在调试阶段如果只是修改了页面是不需要重启应用服务器的,比如不需要重启Tomcat。只需要在浏览器中进行页面刷新即可。其实之所以不用重启Tomcat等应用服务器,其根本原因是因为我们可以在应用服务器的配置文件中设置虚拟目录,这样就可以知道web项目所在的目录,于是就可以省去打包、然后再重新发布到服务器的步骤。
为什么不需要重启呢?
在Eclipse中开发j2ee项目,所有的jsp文件都是放在WebRoot目录下面,用户需要把所有用到的jar包放到WEB-INF(WebRoot的子目录)目录下的lib目录下(这就是没有用maven管理的缺点,所有jar都要自己去找);Eclipse编译时,会把java源代码产生的class文件放到WEB-INF目录的classes目录下。所以大家在应用服务器中指定虚拟目录时,直接指定到WebRoot目录就行了,这样在调试过程中,如果只修改了jsp文件,则不需要重启服务器,刷新页面,就可以看到修改后的效果。
一. 在没有用Maven管理项目时,在Eclipse中将一个项目发布到Tomcat是非常方便的。
如果是一个web项目,那么只需要在Eclipse中的Servers View中简单的添加(因为Eclipse能够检测到web项目),
选中想要添加的web项目,然后点击Finish按钮即可。
如果不是web项目,有两种解决方法:
第一种是也在Eclipse的Servers View中添加一个Server,然后直接点击Finish按钮。然后在Eclipse的Servers View中双击刚添加的Server,并点击Add External Web Moudle按钮,并直接找到该项目的绝对路径然后将其添加到Eclipse中,并指定path路径为src/main/webapp. C:\Users\swang6\workspace\AutoStressTest\ASTWeb\src\main\webapp
第二种方法是通过如下步骤将一个非Web Project修改为Web Project:
1. 右击工程选择properties—>project facets
2. 点击链接"Convert to faccted from..."(注意,该链接只在第一次出现,即在点击过一次后,不再出现)然后选上Dynamic Web Module ,如果Version是2.4,可把Version由2.4改为2.5.(注意如果你当前是使用Tomcat6及Tomcat6以前的版本,不能使用Version3.0, 因为Version3.0支持的JDK是7.0以上的版本,Tomcat6不支持)
3. 然后点击下面的Further configuration available…,弹出Modify Faceted Project窗口此处是设置web.xml文件的路径,输入src/main/webapp,该操作会在src/main/webapp中创建一个新的web.xml文件,即该目录为web项目的虚拟目录. 然后直接和前面提到的操作一样,只需要在Eclipse的Servers view 中增加一个tomcat server, 并直接将web moudle加到该工程中. (注:Further configuration available…链接也是再点击一次后,以后就不会再出现。)
二. 在用Maven管理j2EE项目时
在用Maven管理项目时,也可以使用如上提到的方法。但有人会问,在Eclipse中,如何创建一个Maven的Web项目?如果多个Maven项目之间有依赖,如何在部署到Tomcat的时候将互相依赖的项目也部署进去?
问题1: 如何在Eclipse中创建一个Maven的web项目。(为了让更多的人了解怎么创建有相互依赖关系的Maven项目,即有父子关系,下面以一个这样的例子为例说明)
1. Eclipse中安装maven插件:m2e - http://m2eclipse.sonatype.org/sites/m2e
2 . 创建一个maven 的web 项目:
使用eclipse直接创建maven的web项目:
1):在eclipse建立一个maven项目,弹出窗口选着webapp, 点击next,输入相关的信息就行。在下面的对话框中选择maven-archetype-webapp。 我们假定该项目为parent项目,注意parent项目的packaing必须是pom,如果是war,因为我们这个地方创建的是一个web项目,默认的packaging方式是war,所以需要将其改为pom
<groupId>com.wsheng</groupId>
<artifactId>wsheng-spring-base</artifactId>
<packaging>pom</packaging>
2)在有的Eclipse版本中,可能需要自己手动创建如下3个源文件:分别为:src.main.java,src.test.java和src.test.resources
3)在第一步结束后,你会发现现在Eclipse的工作区间中多了一个maven的project项目:wsheng-spring-base。
4)右击wsheng-spring-base,选择创建一个Maven 的module
输入module名字为wsheng-spring-mvc, 同1)一样,选择创建一个maven-archetype-webapp的web项目。
5) 创建结束后,wsheng-spring-base和wsheng-spring-mvc都是maven的web项目,当然你知道可以在Eclipse的Servers View中New 一个Server,你会发现,Eclipse中你可以直接部署这两个项目到Tomcat中,所以他们也就是Web项目了。这种方法是最简单的方法。直接可以在Eclipse中修改页面文件,会自动部署到Tomcat中而不用重启Tomcat。
特别需要注意的是,不要执行mvn eclipse:eclipse命令,执行该命令后,会将一个maven的project转化为一个eclipse的project,即此时在eclipse中就不再是一个maven的web project了,就不能直接部署到Tomcat中了。
问题二:如果我们在Eclipse中创建的项目不是像上面一样创建Maven的Web项目,而是普通的项目,怎样将其部署到Tomcat中?
注: 该方法显然很麻烦,直接在Eclipse中创建一个Maven的Web项目是多么的简单,但介绍该方法主要是为了让大家明白Eclipse中部署项目到Tomcat的本质所在。有兴趣的朋友不妨一试。
1. 可以参照上面的《第二种方法是通过如下步骤将一个非Web Project修改为Web Project:》现将一个非maven的web项目转化为一个maven的web项目。如现在有一个testMaven的project我们经过转换,将其转化为一个Maven的Web项目后。
2. 创建的几个java类和一个abc.jsp页面进行测试。
图一
(其中target目录是用来存放项目打包之后生成的文件的目录,图一中显示target目录下并没有文件,是因为我们还没有用maven对项目进行打包。)
3. 运行打包命令:mvn clean package 【对项目进行打包】
运行此命令后,项目的结构如图二:
图二
执行上面的命令后你会发现图二中target目录下多出了几个子目录和文件,这是因为运行命令mvn clean package后,生成的文件默认会放在target目录下。其中testMaven.war文件可以直接拷贝到应用服务器如Tomcat的发布目录下,启动服务器可以直接运行!但在开发阶段,相信不会有人这么调试web项目!因为这样不停的拷贝到Tomcat中太麻烦了!!!
其实如果你认真观察,你会发现生成的子目录testMaven也是一个完整的web应用,展开后如图三:
图三
根据前面所说的,如果我们能够制定一个web项目的虚拟目录,直接将其部署到Tomcat中即可。 在此例子中虚拟目录应该是 “D:/EclipseWorkspace/testMaven/target/testMaven”。但这样的话,有一个缺点,那就是每次只要修改了项 目中的文件,即使是jsp文件或者静态页面,你都要运行mvn clean package命令重新打包;要不然你的修改就不会更新到target目录下的文件中去!这样的话感觉比较麻烦,万一忘了执行此命令就刷新页面,发现没有看到修改后的效果,找问题都不好找!因为maven遵循“约定优先于配置”的思想。所以一般所有的页面都是放在目录webapp下面的,就我这例子而言也是 如此!图二和图三都是执行了mvn clean package命令之后的项目的目录结构,认真观察可以发现在webapp的子目录WEB-INF下面除了页面的源文件,并没有classes目录和lib目 录!要是有的话,那直接把虚拟目录指定到此webapp目录下即“D:/EclipseWorkspace/testMaven/src/main /webapp”那该多好,就不用每次修改了页面都需要运行命令mvn clean package之后才能看到效果!
对于这个问题是可以解决的,由于maven遵循“约定优先于配置”的思想,所以如果不做特殊配置,它约定默认是把打包之后产生的文件都放在target目录下的。要想改变此默认行为,我们修改在项目中的pom.xml文件。在此项目中,添加如下配置:
<build>
<plugins>
<!-- 更改maven默认的打包目录:将class文件和lib目录打包放到指定的目录 -->
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${basedir}/src/main/webapp</webappDirectory>
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
4. 在Pom文件中增加如上命令后运行打包命令mvn clean package,项目的目录结构图如图四:
图四
从图四可以看到,webapp的子目录WEB-INF下面多出了classes和 lib目录。这样的话,如果你只修改了页面,就不需要再执行mvn clean package命令对项目进行打包了(因为页面的源文件都直接在webapp目下的),直接享受修改页面即可刷新页面的快捷了(但是如果修改的是java文 件,则还是需要执行mvn clean package命令重新打包的;同理每次修改了pom.xml文件也是一样,即也需要重新执行mvn clean package)!
总之:该方法一旦启动tomcat后,如果只是jsp页面的变化,不需要重新运行mvn clean package 命令,而如果是修改了java代码后,不需要将tomcat停掉,只需要运行 mvn clean package命令即可。会自动部署。
附:不使用Eclipse怎样创建Maven的项目?
使用命令行: mvn archetype:create -DgroupId=my.maven.test - DartifactId=testMaven -DarchetypeArtifactId=maven-archetype-webapp
该篇文章的另一个重要的主题:如何在Eclipse中将两个有Dependency的Maven Project关联起来:
比如现在有一个maven web项目:storeweb, 该项目可以直接部署在Tomcat中,但该项目本身又直接依赖另一个maven 项目,如store_rest项目,该项目为storeweb项目为store_rest项目提供Rest风格的API.那么在将storeweb项目部署到Tomcat的时候,同时也需要将store_rest部署到Tomcat中,可以使用下面的方法:分为2步,第一步是Add maven Dependencies,第二步是Add project dependencies.
Right click the web project “properties” -------> click the “Deployment Assembly” ---->
Click add button
4.2 Choose Java Build Path Entires ---> click Next
4.3 Choose Maven Dependencies------> Finish
4.4 Add project dependencies, Click add button
4. 5: Choose Project-----> Click Next button
4.6 Choose your dependencies project -----> Click Finish button
相关推荐
其实之所以不用重启Tomcat等应用服务器,其根本原因是因为我们可以在应用服务器的配置文件中设置虚拟目录,这样就可以知道web 项目所在的目录,于是就可以省去打包、然后再重新发布到服务器的步骤。
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期...
将Service层以下的代码放到一个新创建的java项目中,在部署的时候将Service(java项目)打成一个jar包,分别放到两个web服务中;编译的时候让web项目依赖与Service(java项目)_source folder;配置麻烦,项目与项目之间的...
本文主要介绍了如何在Eclipse中创建的Maven Project,本文是JavaEE开发的开篇,也是基础。下面内容主要包括了JDK1.8的安装、JavaEE版本的Eclipse的安装、Maven的安装、Tomcat 9.0的配置、Eclipse上的M2Eclipse插件...
然后在maven菜单中使用 “update project ...”. 4.配置pom.xml <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.1 <source>1.7 <target>1.7 <groupId>org.apache.tomcat....
JDK1.8/Mysql5.7/Maven3/Tomcat8.0/Eclipse Neon. 注意事项: 1、按照以下语法建立数据库(ProjectName为你的数据库名,可以改你自己想要的名字,改完请记得把项目中的数据库连接配置也改好) CREATE DATABASE ...
平台:MyEclipse10+Tomcat7 表的字段 和 视频有些不同 但是不会影响效果的 有关json 的 用视频中的2.8.8版本没成功 ,改为2.6.5版本 内含建表语句,要保证MySQL编码为utf-8
重要的是,MavenProject是动态Web项目中每个零增量的必需对象。 在Eclipse中创建Crear un Dynamic Web Project在Maven中进行转换:tasto detro sul progetto->配置>转换为Maven项目->-> come groupId插入“ ...
SpringWebMVC 一个基本的Spring MVC应用程序的示例[不使用SpringBoot] ... 将{project文件夹} / target / lib文件夹(由maven创建)中的所有依赖项添加到类路径。 现在您可以在eclipse中修改源代码了。
2.将Maven项目从仓库导入到Eclipse(对两个项目都执行) 1. Clonar repositorio donde se quiera 2. Abrir Eclipse - File => Import... => Maven => Existing Maven Projects => Next - Root directory: ...
使用 Eclipse 或手动在 Tomcat 7 中部署 war 文件 在应用服务器上部署后 REST WS 可在 /rest/* 下访问 前端尚未实现。 创建本地 Maven 原型 生成原型: mvn archetype:create-from-project 转到target/generated-...
使用 Eclipse 或手动在 Tomcat 7 中部署 war 文件 在应用服务器上部署后 REST WS 可在 /rest/* 下访问 前端尚未实现。 创建本地 Maven 原型 生成原型: mvn archetype:create-from-project 转到target/generated-...
除了项目构建,Maven最核心的功能是软件包的依赖管理,能够自动分析项目所需要的依赖软件包,并到Maven中心仓库去下载。 A)管理依赖的jar包 B)管理工程之间的依赖关系。 3.2. Maven本地仓库 在当前系统用户的...
运行Eclipse并将项目导入为Maven项目 File -> Import -> Existing Maven Project 将Tomcat服务器添加到Eclipse 通过MySql创建数据库(Hibernate创建和更新数据库模式,但需要首先创建数据库) name="project_...
在 Eclipse 中,选择 Project > Import > Import... > Existing Maven Projects,然后选择该项目。 要编译项目,请选择 Run As > Maven build... 并选择package目标。 使用 Tomcat 的基于 Web 的界面部署.war文件...
34.在pom中加入依赖,在web.xml中增加配置后,需要在右侧maven导航条刷新,在上方artifact那边添加library,类里边如果导包不成功,那么重启idea就好了 35. p247运行项目直接报错: 36.老师讲要会看异常,后台框架里...
提供的源码是一个Maven项目,基于以下内容编写。 Java 7或Java 8 -- 在窗口中添加 > 首选项 > Java/已安装的 JRE UTF-8 -- 在Window > Preferences > General/Workspace 中将文本文件编码更改为UTF-8 -- 导入项目...
Web服务器进行部署。 在IntelliJ中设置 使用File > Open打开项目,然后导航到容器文件夹。 右键单击,然后选择Add as Maven project 。 运行Container运行配置。 在Eclipse中设置 通过Import existing maven ...
在项目的 [Properties] 下,转到 [Project Facets] 并将其设置为 3.1 [Dynamic Web Module] 项目,并确保 [Runtimes] 选项卡选择了 Tomcat 8。 确保 [Java] 在项目方面设置为 1.8。 在项目的 [Properties] 下,检查...
该应用程序是使用 Spring Tool Suite 创建的,Spring Tool Suite 是一个基于 Eclipse 的开发环境,专为开发 Spring 应用程序而定制。 因此在本地构建代码,建议下载Spring Tool Suite,克隆这个存储库,并使用....