maven2 + tomcat6 + eclipse集成配置

时间:2021-10-29 13:54:02

转载:http://wenku.baidu.com/view/d64147c676eeaeaad1f330d4.html?re=view

/*
maven2 + tomcat6 + eclipse集成配置
maven的配置
环境变量M2_HOME = maven主目录
环境变量path = maven主目录/bin
apache-maven/conf/setting.xml文件
1、新建maven本地仓库文件夹apache-maven2-repo,并加入setting.xml,指定本地仓库位置
<localRepository>e://apache-maven2-repo</localRepository>
2、添加<server>,注意<id>,用户密码值对应Tomcat\conf下的tomcat-users.xml的指定配置
<server>
<id>tomcat6</id>
<username>admin</username>
<password>admin</password>
</server>
eclipse中的maven配置
1、在window-preferences-maven下
-installtions,add一个外部maven,就是指定自己装的maven目录,选上,不用eclipse内置的maven
插图1
2、-user setting,指定使用刚配置的setting.xml文件
tomcat的配置
tomcat/conf/tomcat-users.xml文件
1、添加<role>,<user>
<role rolename="manager-gui"/> <!-- 注意rolename的取值,tomcat6有规定4个rolename值-->
<user username="admin" password="admin" roles="manager-gui"/>
附加rolename信息
manager-gui - allows access to the HTML GUI and the status pages
manager-script - allows access to the text interface and the status pages
manager-jmx - allows access to the JMX proxy and the status pages
manager-status - allows access to the status pages only
tomcat/conf/server.xml文件
1、修改<Connector>,启动端口8088
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding= "UTF-8"/>
新建一个Java Maven项目
1、new-project-maven project
选择all catalogs,选择org.apache.maven.archetypes/ maven-archetype-webapp
插图3
GroupId:com.maven.test
ArtifaceId:mymaven
package:com.maven.test.mymaven
插图4
新Java Maven项目创建好。
2、pom.xml的配置添加<plugins>,详细配置如下
<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.maven.test</groupId>
<artifactId>mymaven</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mymaven Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>mymaven</finalName>
<plugins>
<!-- 第一点-->
<plugin>
<!-- 第二点-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<update>true</update>
<charset>utf-8</charset>
<!-- 第三点-->
<url>http://localhost:8088/manager/text</url>
<!-- 第四点-->
<server>tomcat6</server>
<port>8088</port>
<path>/mymaven</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
第一点:
pom.xml文件是maven的核心(pom:Project Object Model),
在该文件中可以加载任何项目所需的插件。
添加tomcat-maven中间插件,以启动外部的Tomcat6服务器,
此插件可根据以下<groupId>/<artifactId>/<version>
指定配置,系统会自动将项目所需的插件jar包文件,
从maven repository center下载下来(下载到之前指定的本地apache-maven2-repo仓库中)。
系统会自动将这些项目所需的插件从 maven repository center 下载下来。
因为要希望把项目部署到外部 tomcat下面,
所以此处需要加入 tomcat-maven 插件,以及希望启动的tomcat配置<configuration>标签。
第二点:
tomcat-maven插件,可上官网参考如何写groupId and Mojo name
http://tomcat.apache.org/maven-plugin-2.0/
第三点:
官网解释:Use http://localhost:8080/manager/text rather than the default tomcat6 url
maven要利用tomcat manager,这个大致意思是指定tomcat manager的地址
若/manager/text改为/manager/html,
maven building时的信息会打印会输出一个文本格式的403网页,原因不明。
第四点:
跟setting.xml的<server>指定的<id>同名:tomcat6
3、根据pom.xml进行building
1)pom.xml右键run as -> Maven clean,开始build前清理一下
2)手工启动tomcat,双击运行tomcat/bin/startup.bat
3)pom.xml右键run as -> Maven build..,在Goals填入package tomcat6:deploy,再运行
此时项目target文件夹里生成mymaven.war,项目发布成功
插图4
4)手工关闭tomcat,双击运行tomcat/bin/shutdown.bat
5)再通过tomcat-maven插件重启tomcat,pom.xml右键run as -> Maven build..,在Goals填入tomcat6:run
6)浏览器键入http://localhost:8088/mymaven,看到index.jsp页面代表Java Maven项目实例成功了。
初次玩maven会碰到的构建错误
1、关于tomcat无法启动,提示socket bind failed端口已被占用的情况:
解决:可以打开cmd输入netstat -ano 查找端口被占用的PID,
然后到任务管理器中杀掉PID对应的进程,如无意外是直接杀掉javaw.exe即可解决
2、tomcat:deploy时的错误:
[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.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
解决:注意指定的<url>是否正确,确定是否已经在tomcat-users.xml中正确添加了<role>/<user>
3、为什么启动的是8080端口的tomcat,而不是我们所需要的8088端口的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就被启动起
来了。
*/