1.启动maven+tomcat
tomcat7,其中tomcat-user.xml文件需要配置如下role和user
- <role rolename="admin-gui"/>
- <role rolename="admin-script"/>
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <role rolename="manager-jmx"/>
- <role rolename="manager-status"/>
- <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
- <server>
- <id>tomcat</id>
- <username>admin</username>
- <password>admin</password>
- </server>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
- <configuration>
- <server>tomcat</server>
- <url>http://localhost:8080/manager/text</url>
- <path>/framework</path>
- </configuration>
- </plugin>
在上述配置文件中:
其中server与maven的setting.xml中的id一致
其中url为tomcat管理地址,不同的容器,域名和端口可能不同,注意url的最后必须加上 /text 否则会出错
其中 path为你项目的名称
注意事项:
1、如果本机有多个tomcat,eclipse maven插件怎么知道是哪个tomcat呢? 答:你必须在eclipse里面配置 tomcat
2、在运行maven的deploy命令之前,一定要先启动tomcat(直接进入tomcat的bin目录点击startup.bat),否则会报:“Cannot invoke Tomcat manager: Connection refused” 错误
3、在 pom.xml 的configuration节点里面的url最后必须加上 /text ,否则,即使你在运行maven的deploy命令之前已经启动了tomcat,还是会报错:
“Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/deploy?path=%2Fframework&war= ”
4、在运行maven的deploy 命令之前,我们已经启动了tomcat,所以在运行maven的run 命令之前,必须先关掉tomcat,然后再运行maven的 run 命令,之后你对项目的修改都会自动的同步到项目发布目录
2.创建eclipse+maven项目:
地址:http://blog.csdn.net/jiuqiyuliang/article/details/46053543
3.创建maven项目时报错,解决办法
报错信息:
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
解决办法:
①检查代理是否设置好
②删除maven本地库里面的org.apache.maven.plugins:maven-resources-plugin所在目录,让mavan重新下载这个包就行了。
③检查网络,我用公司网的时候就会报错,回家后用自己的网就好了,估计是公司网的权限限制。
4.maven设置http代理
使用情况:网络不能直接访问外网,需设置代理
①检测本地网络是否能直接访问Maven的远程中央仓库,命令为ping repo1.maven.org
②检查一个代理地址是否通畅:telnet 192.168.10.117 3267
检查完之后在settings.xml中添加代理配置
5.创建maven web项目后pom.xml报错:
1.如果创建的是web项目,那么project---右击---java EE Tools---Generate Deployment Descriptor Sub
2.如果创建的不是web项目,那么配置:<configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration>
6.Maven生命周期详解:
MavenYou 三套相互独立的生命周期:
Clean Lifecycle:在进行真正的构建之前进行一些清理工作
Default Lifecycle:架构的核心部分,包括:编译、打包、测试、部署等
Site Lifecycle:生成测试报告,生成站点,发布站点
可以仅仅运行其中一个生命周期:mvn clean
或一起运行:mvn clean default site
对于每一个生命周期都包含自己个各个阶段:
Clean:pre-clean执行一些在clean之前需要完成的工作、clean移除所有上一次构建生成的文件、post-clean执行一些在clean之后立刻完成的工作
对于maven命令执行后面的命令,那么之前的命令都会被运行,如:mvn post-clean,那么之前的命令都会被执行
Site:pre-site需要在生成站点文档之前完成的工作、site生成项目的站点文档、post-site将生成的站点文档部署到特定的服务器上
Default:
validate
generate-sources
process-sources 复制并处理资源文件,至目标目录,准备打包
generate-resources
process-resources
compile 编译项目的源代码
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件,至目标测试目录
test-compile 编译测试源代码
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署
prepare-package
package 接受编译好的代码,打包成可发布的格式,如JAR
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装至本地仓库,以让其它项目依赖
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
7.Maven坐标:
在开发maven项目的时候定义适当的maven坐标,这样其他的maven项目才能应用该项目生成的构建.
<groupId></groupid> 定义当前maven项目隶属的实际项目,表示方式与java包名方式类似,与域名方向反向一一对应
<artifactId></artifactId> 定义当前实际项目中的maven项目
<packaging></packaging> 定义maven项目的打包方式,.war/.jar
<version></version> 定义当前maven项目的版本