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

Đin*_*hâu 6 eclipse war maven 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应用程序?非常感谢!

顺便说一下,我已经阅读并试图多次配置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"/>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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

Wes*_*Wes 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>
Run Code Online (Sandbox Code Playgroud)

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