`
Josh_Persistence
  • 浏览: 1651302 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Eclipse中创建Web Maven Project并部署到Tomcat中(Maven 的Web Project加入另一个Maven Project依赖)

阅读更多

前言:

       大家都知道,在进行J2EE项目的开发过程中,在调试阶段如果只是修改了页面是不需要重启应用服务器的,比如不需要重启Tomcat。只需要在浏览器中进行页面刷新即可。其实之所以不用重启Tomcat等应用服务器,其根本原因是因为我们可以在应用服务器的配置文件中设置虚拟目录,这样就可以知道web项目所在的目录,于是就可以省去打包、然后再重新发布到服务器的步骤。

       为什么不需要重启呢?

   在Eclipse中开发j2ee项目,所有的jsp文件都是放在WebRoot目录下面,用户需要把所有用到的jar包放到WEB-INFWebRoot的子目录)目录下的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.javasrc.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.

       4.1 Add maven 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



 

 

 

 

 

 

  • 大小: 15.9 KB
  • 大小: 5.7 KB
  • 大小: 7.2 KB
  • 大小: 9.8 KB
  • 大小: 8.2 KB
  • 大小: 57.4 KB
  • 大小: 57.4 KB
  • 大小: 10 KB
  • 大小: 6.6 KB
  • 大小: 57.4 KB
  • 大小: 12 KB
  • 大小: 10.6 KB
  • 大小: 44.1 KB
  • 大小: 29.4 KB
  • 大小: 44.7 KB
  • 大小: 53.7 KB
分享到:
评论
3 楼 programmer_sir 2016-06-16  
great.thks.
2 楼 raptor 2015-02-11  
很不错的总结,很实用
1 楼 bangsen 2014-01-17  
很详细, 学习了, 谢谢。

相关推荐

    Eclipse中创建Web Maven Project并部署到Tomcat中

    本篇文章将详细解释如何在Eclipse中创建一个基于Maven的Web项目,并将其部署到Tomcat服务器上。 首先,创建一个`Web Maven Project`: 1. 打开Eclipse,选择“File” -&gt; “New” -&gt; “Dynamic Web Project”。 2. ...

    如何在eclipse jee中创建Maven project并且转换为Dynamic web project

    在Eclipse JEE环境下,创建一个Maven项目并将其转换为Dynamic Web Project是开发Java Web应用程序的常见步骤。Maven是一种强大的项目管理工具,而Dynamic Web Project则是Eclipse中的一个特殊项目类型,专用于Web...

    在Eclipse中Tomcat和Maven插件相互配合进行热部署

    1. **Maven的生命周期**:Maven的`install`目标会把编译后的项目打包并部署到本地仓库,`tomcat7:run`或`tomcat8:run`插件目标可以直接启动Tomcat服务器并部署项目。这样,每当源码发生变化,Maven会自动编译并更新...

    maven的安装文件以及集成TOMCAT、eclipse的教程

    4. **启动Tomcat**: 在Servers视图中启动Tomcat,Eclipse会自动将项目部署到Tomcat并启动Web应用。 通过以上步骤,你已经成功地在Eclipse环境中搭建了Maven和Tomcat的集成开发环境。在实际开发中,你可以利用Maven...

    maven项目转动态web项目,部署到tomcat

    Maven 项目转动态 Web 项目并部署到 Tomcat 是一个常见的操作,特别是在 Eclipse 和 Tomcat 环境下。本文将详细介绍如何将 Maven 项目转换为动态 Web 项目,并将其部署到 Tomcat 中。 Maven 项目转换为动态 Web ...

    eclipse+tomcat+maven

    通过上述步骤,您已经成功地在Eclipse中创建了一个Maven Web项目,并将其部署到了Tomcat服务器上。这种集成方式不仅提高了开发效率,还简化了项目的管理和构建过程。这对于实际开发工作来说是非常有益的。

    eclipse+maven+tomcat集成

    在Eclipse中使用Maven进行项目开发,首先需要创建一个Maven项目。Maven项目通常遵循一定的目录结构,便于统一管理和自动化构建。 - **新建Maven项目**: - 打开Eclipse,选择`File -&gt; New -&gt; Other -&gt; Maven -&gt; ...

    Eclipse中创建WebMavenProject并部署到Tomcat中.pdf

    本文将详细讲解如何在Eclipse中创建一个基于Maven的Web项目,并将其部署到Tomcat应用服务器,同时处理项目之间的依赖关系。 首先,创建一个Maven的Web项目。在Eclipse中,选择"File" -&gt; "New" -&gt; "Dynamic Web ...

    eclipse构建和部署maven

    - 在新窗口中,勾选"Use default Workspace location",通常不需要选择其他选项,然后在Artifact Id中选择"maven-archetype-webapp"来创建一个Web应用的基础结构。 - 输入Group ID和Artifact ID,这两个标识符用于...

    Eclipse+tomcat+maven 配置Spring mvc图文教程

    - 在Eclipse中右键点击项目,选择Run As -&gt; Run on Server,选择已配置的Tomcat服务器,Eclipse会自动编译、打包并部署项目到Tomcat。然后可以通过浏览器访问`http://localhost:8080/项目名/控制器方法`来查看效果...

    Eclipse Maven WEB工程实战.pdf

    - 在Eclipse中创建一个新项目时选择MavenProject选项,然后按照提示进行下一步操作。 - 选择适合的项目骨架,例如apache-webapp,这将帮助搭建一个基本的Web应用结构。 - 需要设置组织相关信息,如Group ID、...

    Eclipse Tomcat Dynamic Web Project

    【Eclipse Tomcat Dynamic Web Project】是一个用于开发和部署Java Web应用程序的工作流程,它整合了Eclipse IDE的强大功能和Apache Tomcat服务器的便捷性。在Eclipse中创建一个Dynamic Web Project,开发者可以轻松...

    maven项目完成tomcat的部署

    通过以上步骤,您可以成功地将一个Maven项目转化为Web项目,并将其部署至Tomcat服务器。这种方法不仅可以提高开发效率,还能够简化部署过程,对于Java Web开发者来说是一项非常实用的技能。在实际开发过程中,还需要...

    使用Eclipse构建Maven的Web项目

    这篇博客"使用Eclipse构建Maven的Web项目"将详细介绍如何利用Eclipse创建并配置一个基于Maven的Web应用程序。 首先,创建Maven Web项目需要Eclipse安装了Maven插件。这个插件通常称为"M2E"(Maven Integration for ...

    Maven构建并热部署一个简单的Web Project

    本篇文章将详细讲解如何使用Maven来构建并实现一个简单Web项目的热部署。 **一、Maven简介** Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理及构建Java项目。它通过POM文件来管理项目...

    使用eclipse插件创建一个web project

    在IT行业中,开发Web应用程序是常见的任务之一,而Eclipse作为一个强大的Java集成开发环境(IDE),提供了丰富的插件支持,使得创建Web项目变得相当便捷。本文将深入探讨如何使用Eclipse插件创建一个Web项目,并涉及...

    eclipse+maven创建web项目

    当我们需要在Eclipse中创建一个Web项目时,结合Maven可以使得项目管理和构建过程更加规范和高效。以下将详细介绍如何使用Eclipse和Maven来创建一个Web项目。 首先,确保你已经安装了Eclipse IDE和Maven。Eclipse...

    maven创建web工程

    本文将详细介绍如何使用 Maven 在 Eclipse 中创建一个 Web 工程。 #### 二、准备工作 在开始之前,请确保已经安装了以下组件: - **JDK**:Java 开发工具包。 - **Maven**:用于自动化构建过程。 - **Eclipse IDE...

Global site tag (gtag.js) - Google Analytics