将使用 Eclipse 和 Maven 创建的项目部署到 Tomcat

Posted

技术标签:

【中文标题】将使用 Eclipse 和 Maven 创建的项目部署到 Tomcat【英文标题】:Deploying project, created with Eclipse and Maven, to Tomcat 【发布时间】:2011-02-22 22:14:49 【问题描述】:

我正在使用 Eclipse 3.5、Maven 2、m2eclipse 和 Tomcat 6。所以我为原型 webapp 创建 Maven 项目。 这是 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.itransition</groupId>
    <artifactId>hello</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello Maven Webapp</name> 
    <url>http://maven.apache.org</url>

    <!-- tools.jar dependency -->    
    <profiles>
        <profile>
            <id>default-tools.jar</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Sun Microsystems Inc.</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.5.0</version>
                    <scope>system</scope>
                    <systemPath>$java.home/../lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.1.8.1</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>hello</finalName>
    </build>
</project>

然后我想将我的 Web 应用程序部署到 Tomcat。我需要做什么? Maven安装没有帮助。但是,如果我通过 Maven 安装创建战争,我可以将其导入到 eclipse 并通过服务器弹出窗口中的“添加和删除...”将其部署到 Tomcat。

【问题讨论】:

顺便说一句,这个 default-tools.jar 配置文件到底是什么?! 【参考方案1】:

这个问题可以通过使用 Maven 的 Tomcat 插件来解决。它的主页上有大量关于插件的configuration 和deployment of war files 的文档。

【讨论】:

抱歉这个愚蠢的问题,但我怎样才能得到这个插件?我没有找到任何下载页面。 没问题。当您将插件配置添加到 pom.xml 文件时,Maven 会自动下载插件及其依赖项。 所以我添加到 pom.xml org.codehaus.mojotomcat-maven-pluginlocalhost:8080/manager</url> 然后运行“mvn tomcat:deploy”,得到 [INFO] Deploying war to localhost:8080/hello [INFO] [ERROR] BUILD ERROR [INFO] [INFO ] 无法调用 Tomcat 管理器嵌入式错误:服务器返回 HTTP 响应代码:403 用于 URL:localhost:8080/manager/deploy?path=%2Fhello&war= 403 可能意味着您应该将访问 tomcat 管理器应用程序所需的用户名和密码添加到您的 pom.xml 文件中。配置的 Tomcat 端在此处描述:tomcat.apache.org/tomcat-5.5-doc/… 另外,请参阅此处的“使用不同的 Tomcat 管理器身份验证详细信息”部分:mojo.codehaus.org/tomcat-maven-plugin/configuration.html【参考方案2】:

可以通过两种方式完成。

    参考以下网址

    http://www.mkyong.com/maven/how-to-create-a-web-application-project-with-maven/

    使用 eclipse 创建 maven 项目并从命令提示符(或)终端找到项目文件夹

    mvn eclipse:eclipse -Dwtpversion=2.0 [在项目文件夹中]

    参考 Eclipse 项目。

    现在您可以添加和删除部署。

【讨论】:

【参考方案3】:

发现tomcat manager url(我使用的是Tomcat 6.0)是http://localhost:8080/manager/html,而mvn tomcat插件使用的默认值在URL中的manager处停止。将指定的 url 作为配置参数添加到您的 pom.xml -(有关更多详细信息,请参阅此 url http://mojo.codehaus.org/tomcat-maven-plugin/configuration.html),瞧,它可以工作了...

使用 Tomcat7,我发现我需要将 URL 设置为 http://localhost:8080/manager/html 使用具有 manager-gui 角色的用户名。但是,使用具有 manager-script 角色的用户名和 URL http://localhost:8080/manager/text 也可以使用并且更合适。 manager-script 角色是设计用于 ant/maven 脚本的方式。

【讨论】:

【参考方案4】:

然后我想将我的 Web 应用程序部署到 Tomcat。我需要做什么? Maven安装没有帮助。但是,如果我通过 Maven 安装创建战争,我可以将其导入到 eclipse 并通过服务器弹出窗口中的“添加和删除...”将其部署到 Tomcat。

由于您使用的是 m2eclipse,我的建议是使用 WTP 部署您的应用程序。假设您已安装 Maven 集成 WTP 功能(来自 m2eclipse extras)并将 Tomcat 配置为服务器,只需 右键单击您的项目并选择 运行 >在服务器上运行...

另一种选择是在 Jetty 上运行您的应用程序(是的,我知道这不是您想要的,但如果您不想使用 WTP,这是非常有效的选择)。将以下 sn-p 添加到您的 pom 中:

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
      </plugin>
    </plugins>
  </build>
</project>

只需运行 mvn jetty:run 即可启动嵌入式 Jetty 服务器并在其上部署您的应用程序。

使用Tomcat Maven Plugin 可以为 Tomcat 实现相同的目标,但除非您想部署到远程 Tomcat(请参阅Usage 页面),否则我认为与Maven Jetty Plugin 相比没有任何优势。

在开发过程中,我会使用第一个选项(使用 WTP 部署)。

【讨论】:

当我使用 WTP 部署应用程序时,页面上出现 404 错误。 @fatkh 你在某个地方遇到了另一个问题,或者你做错了什么,但我保证它适用于我们其他人。【参考方案5】:

如果您希望由maven 创建的war 文件应该直接部署在tomcat 服务器上,那么这个tomcat deployment configuration 可以帮助您。

【讨论】:

以上是关于将使用 Eclipse 和 Maven 创建的项目部署到 Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

Maven for Eclipse 第三章 ——创建和导入 Maven 项目

项目管理和构建十分钟教程,eclipse配置maven + 创建maven项目

eclipse配置maven + 创建maven项目

从 Git 将 Maven 项目导入 Eclipse

在eclipse上将maven项目转换为clojure项目

eclipse 创建maven项目