我正在尝试将 Maven 集成到我的网络项目中。我想用 mvn tomcat7:run 运行项目,但是当我这样做时,maven 在 MyProject/target/tomcat 中创建了新的 tomcat 配置,当我尝试在 localhost 上打开它时出现 404 错误。谁能描述我应该怎么做才能配置 maven 以使用本地预配置的 tomcat 实例?
1 回答
Maven 在本地创建 Tomcat 配置,mvn tomcat7:run
因为您在/target
目录外运行 webapp,目的是使正在运行的 webapp 与任何外部配置隔离。例如,如果您需要应用自定义 Tomcat 配置,那么 Maven 需要事先修改 Tomcat 配置。由于文件系统权限,这可能是不可能的,或者可能会影响其他 web 应用程序。因此 Maven 将配置复制到本地,应用任何自定义配置并通过tomcat7-maven-plugin
.
一种选择是查看maven-cargo-plugin,它可以将.war
使用 Maven 构建的产品部署到现有的运行 Tomcat 安装中。使用正确的配置,mvn tomcat7:run
您将使用mvn cargo:redeploy
删除正在运行的 webapp 并将其替换为新构建的 webapp。
作为替代方案,可以将 Eclipse 配置为启动运行 webapp 的 Tomcat 实例。如果将 Eclipse 项目类型更改为Dynamic Web Project,然后通过执行以下操作将 Tomcat 实例添加到 Eclipse:
- 窗口 → 首选项 → 服务器 → 运行时环境
- 添加 → Apache Tomcat v7.0
并将它指向您下载的Tomcat。Eclipse 将使用这个外部Tomcat 作为模板来为您的 web 应用程序创建一个内部Tomcat 配置。最后,需要配置 webapp 以将正确的资源和库部署到 Tomcat 中。通过右键单击项目根 → 属性 → 部署程序集,更改列表以匹配您的资源位置。标准设置可能看起来像
/src/main/java | /WEB-INF/classes
/src/main/resources | /WEB-INF/classes
/src/main/webapp | /
Maven Dependencies | /WEB-INF/lib