轉載: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就被啟動起
來了。
*/