将使用 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可以通过两种方式完成。
参考以下网址
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 项目