收藏 分销(赏)

Maven-Eclipse-Tomcat配置详解.docx

上传人:仙人****88 文档编号:9445788 上传时间:2025-03-26 格式:DOCX 页数:18 大小:924.85KB
下载 相关 举报
Maven-Eclipse-Tomcat配置详解.docx_第1页
第1页 / 共18页
Maven-Eclipse-Tomcat配置详解.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述
Maven+Eclipse+Tomcat配置详解 前言:本文介绍的内容都是基于JDK配置ok的情况下进行的,JDK的配置在此不做描述。 ------------------------------------------------1.Maven的配置-------------------------------------------------------- 1. 下载maven,此处使用apache-maven-3.0.5版本,下载地址: http://maven.apache.org/docs/3.0.5/release-notes.html 2. 解压apache-maven-3.0.5到D:\eclipse\ (图1) 3. 拷贝apache-maven-3.0.5/conf/settings.xml到 C:\Documents and Settings\Administrator\.m2 (图2) (说明:如果setting.xml放置到maven/conf下面相当于全局变量,其修改会影响所有使用maven的人,放置到Administrator\.m2下面是针对某个用户Administrator而言,起修改仅会影响到该用户) 4. 修改C:\Documents and Settings\Administrator\.m2\settings.xml (1) 修改maven本地资源库的配置,以后maven用到的所有资源文件都会存储到该目录下: <localRepository>D:\eclipse\apache-maven-local-repository</localRepository> (图3) (图4) (2) 再说一说settings.xml 文件中与tomcat相关的配置,以备后面集成使用,此步骤可暂缓进行,此处只是为了文档完整性而作。<id>标签可以理解为tomcat别名,比如本人使用的是apache-tomcat-6.0.36,那<id>标签中的内容为tomcat6(记住这个别名,很重要的,后面的pom.xml配置,以及eclipse的maven build中都会用到),<username>和<password>标签内容对应apache-tomcat-6.0.36\conf\tomcat-users.xml中设置的用户名和密码。(此步骤可在配置完tomcat以后再配置) <server> <id>tomcat6</id> <username>admin</username> <password>admin</password> </server>(图5) 5. 配置环境变量MAVEN_HOME: MAVEN_HOME=D:\eclipse\apache-maven-3.0.5(注意,路径最后不要加\,如果加了\,那后面path读出来的变量名称就是D:\eclipse\apache-maven-3.0.5\\bin,显然是错误的) (图6) 6. 配置环境变量path:在path里面添加%MAVEN_HOME%\bin; (注意,英文状态下的分号;不能少) (图7) 环境变量配置好以后,在cmd里输入mvn –version,如果出现下图信息,表示配置成功。 (图8) 至此,maven的配置完成。 ------------------------------------------------2.Tomcat的配置-------------------------------------------------------- 1. 下载tomcat,可到apache官网http://tomcat.apache.org/download-60.cgi 2. 解压apache-tomcat-6.0.36到D:\eclipse\ (图9) 3. 修改tomcat的配置D:\eclipse\apache-tomcat-6.0.36\conf,首先修改server.xml,tomcat默认端口是8080,为防止端口冲突,将8080修改为6080。 <Connector port="6080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> (图10) 4. 然后修改D:\eclipse\apache-tomcat-6.0.36\conf\tomcat-users.xml,为tomcat配置管理员账号 <user username="admin" password="admin" roles="manager"/> (图11) 5. 修改完tomcat的配置后进入D:\eclipse\apache-tomcat-6.0.36\bin,startup.bat启动tomcat,在地址栏里输入:http://localhost:6080/manager/html,弹出用户名和密码输入框,输入第4步骤设置的用户名和密码。 (图12) 登录成功后进入tomcat管理页面,表示tomcat配置成功 (图13) 至此,tomat配置完成。 ------------------------------------------------3.Eclipse的配置-------------------------------------------------------- 1. 安装Eclipse和MyEclipse,可到官网下载 (图14) 2. 启动MyEclipse,进入help->MyEclipse Configuration Center (图15) 3. 进入Center中心后切换到SoftWare标签,一般高版本的MyEclipse会自带Maven插件,可先通过My SoftWare中卸载Maven插件,然后再在Browser SoftWare中通过add site添加m2eclipse: Maven:http://download.eclipse.org/technology/m2e/releases 最后通过Pending Changes中的【Apply (1) change 】安装插件,中间可能会需要多次重启MyEclipse。 (图16) 4. MyEclipse的Maven插件安装完成后,在window->preference中会看到Maven插件,然后就是对Maven进行配置,首先是Installations,需要将本地的Maven添加进来D:\eclipse\apache-maven-3.0.5,并且配置好Global Setting (图17) 然后再配置User Settings (图18) 5. 在MyEclipse中配置tomcat(注意:tomcat server必须选择为Enable,否则不可用) (图19) ------------------------------------------------------------4.示例------------------------------------------------------------ 1. 现在就使用上面的配置创建我们的第一个maven webapp工程吧,打开MyEclipse的File->New->Others->Maven->Maven Project (图20) (图21) Catalog为All Catalogs,mabaen-archetype-webapp (图22) Group Id 和Artifact Id及Version都是Maven的几个关键元素,这三个元素定义了项目的基本坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。 groupId定义了项目属于哪个组(可以理解为项目的package),artifactId定义了当前Maven项目在组中唯一的ID(可以理解为项目名称),version指定了项目当前的版本。 (图23) 2. 了解MyEclipse中项目的结构,web项目必须在src\main\webapps下面才可以成功编译和部署。 (图24) 3. 修改index文件,做一个简单的标示。成功运行项目后,页面将显示为如下信息 (图25) 4. pom.xml文件是maven的核心(pom:Project Object Model),在该文件中可以加载任何项目所需的插件,系统会自动将这些项目所需的插件从maven repository center下载下来。因为要希望把项目部署到外部tomcat下面,所以此处需要加入tomcat-maven插件,以及希望启动的tomcat配置 <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat6-maven-plugin</artifactId> <version>2.0-beta-1</version> <configuration> <url>http://localhost:6080/manager</url> <server>tomcat6</server> <port>6080</port> <path>/MyFirstMaven</path> </configuration> </plugin> </plugins>(图26) 5. 运行工程,选择工程名邮件Run As->maven clean,会将之前编译的内容清除重新编译。 (图27) 然后执行maven bulid,并在goals中输入package tomcat6:deploy (图28) 先查看一下(图28)run之前tomcat\webapps目录下的内容 (图29) Run(图28),当MyEclipse中的console控制台输出的内容为BUILD SUCCESS时,就表示部署成功了 (图30) (图28)Run之后tomcat\webapps目录下的内容,多了MyFirstMaven和MyFirstMaven.war两个文件,表示项目发布成功 (图31) MyEclipse->项目右键->Run As->Maven Build,输入tomcat6:run,就可启动tomcat。 (图32) 出现如下信息表示tomcat启动成功 (图33) 在浏览器中输入http://localhost:6080/MyFirstMaven并访问 (图34) Ok,maven webapp项目实例完成。 ------------------------------------------------5.问题解答-------------------------------------------------------- 在maven build工程的时候,大多数资料都是显示tomcat:deploy等等,于是一开始也是按照tomcat:deploy格式输入的,结果会产生大量的报错,而且启动的tomcat端口是8080,是eclipse自带的tomcat,而不是我们设置的6080端口的tomcat。错误信息如下: [DEBUG] (f) charset = ISO-8859-1 [DEBUG] (f) contextFile = D:\eclipse\workspaces\MyFirstMaven\target\MyFirstMaven\META-INF\context.xml [DEBUG] (f) ignorePackaging = false [DEBUG] (f) mode = war [DEBUG] (f) packaging = war [DEBUG] (f) path = /MyFirstMaven [DEBUG] (f) update = false [DEBUG] (f) url = http://localhost:8080/manager [DEBUG] (f) version = 1.1 [DEBUG] (f) warFile = D:\eclipse\workspaces\MyFirstMaven\target\MyFirstMaven.war [DEBUG] -- end configuration -- [INFO] Deploying war to http://localhost:8080/MyFirstMaven [DEBUG] No server specified for authentication - using defaults [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.797s [INFO] Finished at: Wed Mar 13 11:24:37 CST 2013 [INFO] Final Memory: 6M/12M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project MyFirstMaven: Cannot invoke Tomcat manager: Server returned HTTP response code: 400 for URL: http://localhost:8080/manager/deploy?path=%2FMyFirstMaven&war= -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project MyFirstMaven: Cannot invoke Tomcat manager at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149) at org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 more Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8080/manager/deploy?path=%2FMyFirstMaven&war= at .www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305) at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604) at org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662) at org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295) at org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85) at org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85) at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) ... 22 more [ERROR] [ERROR] 原因分析及解决方案: 1. 为什么tomcat:deploy的时候会报错呢? 报错Cannot invoke Tomcat manager: Server returned HTTP response code: 400的原因是因为如果用tomcat,maven是自动调用的maven自带的插件tomcat-6.0.29,前面介绍过,我们需要设置tomcat-user,才能访问tomcat的manager http://localhost:8080/manager/,因为maven自带的tomcat-6.0.29并没有设置tomcat-user,所以无法访问,报错400. 2. 为什么启动的是8080端口的tomcat,而不是我们所需要的6080端口的tomcat呢? 因为如果使用tomcat:deploy或tomcat:run,maven会自动调用的maven自带的tomcat-6.0.29插件,而不是我们所需的外部设置的tomcat-6.0.36,那该怎么办呢?前面在maven-setting.xml设置的时候,重点强调过,有一个配置tomcat的地方,<id>tomcat6<id>是需要记住的,后面会用到。就是这个时候用到了,尝试在maven build的时候,在goals里输入tomcat6:deploy或tomcat6:run,ok问题解决啦,外部的tomcat6.0.36就被启动起来了。 (f) packaging = war [DEBUG] (f) path = /MyFirstMaven [DEBUG] (f) pluginArtifacts = [org.apache.tomcat.maven:tomcat6-maven-plugin:maven-plugin:2.0-beta-1:, org.apache.tomcat.maven:common-tomcat-maven-plugin:jar:2.0-beta-1:compile, org.codehaus.plexus:plexus-archiver:jar:2.0.1:compile, org.codehaus.plexus:plexus-io:jar:2.0.1:compile, com.google.guava:guava:jar:10.0.1:compile, com.google.code.findbugs:jsr305:jar:1.3.9:compile, commons-io:commons-io:jar:2.0.1:compile, org.apache.httpcomponents:fluent-hc:jar:4.2-alpha1:compile, commons-logging:commons-logging:jar:1.1.1:compile, org.apache.httpcomponents:httpclient:jar:4.2-alpha1:compile, org.apache.httpcomponents:httpcore:jar:4.2-alpha2:compile, org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile, commons-lang:commons-lang:jar:2.6:compile, junit:junit:jar:4.10:compile, org.hamcrest:hamcrest-core:jar:1.1:compile, org.apache.maven:maven-archiver:jar:2.4.2:compile, org.codehaus.plexus:plexus-interpolation:jar:1.13:compile, org.codehaus.plexus:plexus-utils:jar:3.0:compile, commons-codec:commons-codec:jar:1.3:compile, org.apache.tomcat:catalina:jar:6.0.35:compile, org.apache.tomcat:juli:jar:6.0.35:compile, org.apache.tomcat:annotations-api:jar:6.0.35:compile, org.apache.tomcat:catalina-ha:jar:6.0.35:runtime, org.apache.tomcat:tribes:jar:6.0.35:runtime, org.apache.tomcat:el-api:jar:6.0.35:runtime, piler:ecj:jar:3.7.1:compile, org.apache.tomcat:jasper:jar:6.0.35:runtime, org.apache.tomcat:jasper-el:jar:6.0.35:runtime, org.apache.tomcat:jsp-api:jar:6.0.35:runtime, org.apache.tomcat:servlet-api:jar:6.0.35:runtime, org.apache.tomcat:coyote:jar:6.0.35:runtime, org.apache.tomcat:dbcp:jar:6.0.35:runtime] [DEBUG] (f) port = 6080 [DEBUG] (f) project = MavenProject: org.sun:MyFirstMaven:0.0.1-SNAPSHOT @ D:\eclipse\workspaces\MyFirstMaven\pom.xml [DEBUG] (f) protocol = HTTP/1.1 [DEBUG] (f) uriEncoding = ISO-8859-1 [DEBUG] (f) useNaming = true [DEBUG] (f) useSeparateTomcatClassLoader = false [DEBUG] (f) useTestClasspath = false [DEBUG] (f) warSourceDirectory = D:\eclipse\workspaces\MyFirstMaven\src\main\webapp [DEBUG] -- end configuration -- [INFO] Running war on http://localhost:6080/MyFirstMaven
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服