通过Tomcat在Maven项目的/ target目录中运行WAR文件

时间:2011-04-16 15:49:58

标签: eclipse maven war tomcat7

我正在使用Java和Maven构建系统开发Web应用程序,Web服务器是Tomcat 7.0.12。通过Maven build命令将整个项目打包到WAR文件到\ target目录后,我必须将其复制到Tomcat home的webapps文件夹中运行它。这非常不方便,特别是当我修改了一些源文件时,因为我必须再做所有这些事情(构建,复制到Tomcat,再运行它)。我在这个问题上研究了一些关于Maven,Tomcat,Eclipse的文章,但没有结果。 请你帮助我好吗: 1.如何让Tomcat直接在Maven命令构建的项目目标目录下运行WAR文件?无需复制/粘贴WAR文件并重新启动Tomcat? 2.如何配置Tomcat以在Eclipse上调试Web应用程序? 非常感谢你!

BTW,我已阅读并尝试多次配置Tomcat,Maven和pom文件。但我不知道具体的配置是什么,因为有这么多的建议!你能为我提供一个特定的配置示例吗? 这是我的配置文件:

Tomcat tomcat-users.xml

  <role rolename="manager-gui"/>
  <user username="admin" password="" roles="manager-gui"/>
  **<role rolename="manager"/>
  <user username="admin" password="" roles="manager"/>**
  <role rolename="admin-gui"/>
  <user username="admin" password="" roles="admin-gui"/>

Maven settings.xml

                         tomcat的             管理                           

项目的pom.xml文件:

<build>
      <finalName>my-project</finalName>
      <defaultGoal>package</defaultGoal>
      <plugins>
         <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>tomcat-maven-plugin</artifactId>
       <version>1.1</version>
       <configuration>
          <server>tomcat</server>  
              <warFile> ${project.build.directory}/${project.build.finalName}.war</warFile>
       </configuration>
     </plugin>
      </plugins>
   // Other plugins
   </build>

更多细节: 如果我在启动Tomcat实例之前运行mvn tomcat:deploy,则返回的错误是“无法调用Tomcat管理器:连接被拒绝:连接”。 否则,如果在调用mvn tomcat:deploy之前已启动Tomcat实例,则错误为“无法调用Tomcat管理器:服务器返回HTTP响应代码:403为URL:http://localhost:8080/manager/deploy?path=%2Fmy-project&war= ...”

2 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点。

tomcat maven插件http://mojo.codehaus.org/tomcat-maven-plugin/为您提供了一种从maven直接部署到tomcat的方法。您必须先配置tomcat用户。有关如何配置用户的说明,请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/realm.html

对于调试,您可以使用http://wiki.apache.org/tomcat/FAQ/Developing

中指定的参数启动tomcat

另一种方法是配置tomcat指向你的战争。请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/context.html,尤其是 docbase 参数。

编辑1 根据修订后的问题,http 403是禁止的,这意味着你没有正确认证。

将tomcat-users.xml更改为如下所示:

        

您需要在pom.xml中添加对用户名/密码的引用。 settings.xml必须包含(基于您的配置)

<server>
    <id>tomcat</id>
    <username>admin</username>
    <password></password>
</server>

这是一个很好的页面http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html,可以更全面地解释它。但是,这些信息可能已过时。

答案 1 :(得分:2)

我遇到了完全相同的问题。

我认为这是eclipse-tomcat插件。我不知道为什么它在tomcat 7中与tomcat 6相反的方式不同,我没有遇到过问题。

无论如何,我所做的是将maven构建到/ web-app / WEB-INF目录

<build>
    <directory>${basedir}/src/main/webapp/WEB-INF</directory>
...
</build>

在这个配置之后,eclipse:eclipse应该产生一个合适的eclipse项目/类路径文件 资源:资源也应相应地发挥作用。