Maven问题记录

Q: 我执行tomcat7插件相关的操作时,怎么一直报错,提示找不到tomcat7插件?

A: 这个是因为tomcat7插件的groupId不在maven默认的pluginGroups中,解决方法有一下几种:

1. 在一个配置了tomcat7插件的项目目录下执行,因为配置了tomcat7插件,所有maven就知道了其groupId,所以就能够找到了

2. 使用带groupId的全限定名,例子如下:

      mvn help:describe -Dplugin=org.apache.tomcat.maven:tomcat7-maven-plugin:2.2

 

   由于在指定plugin的时候,写了完整的groupId,所以这样也是可以的

3. 修改一下mvn的配置文件settings.xml, 在<pluginGroups> 这个配置项下面,增加一个<pluginGroup>配置即可

       <pluginGroups>

                  <pluginGroup>org.apache.tomcat.maven</pluginGroup>

       </pluginGroups>

 

想了解更多为什么会这样,请参考

http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html

 

注意:执行mvn tomcat7:run  时 要放在项目的目录下执行 例如Restaurant 的目录下执行

 

Q: 我在实战maven管理多项目的时候,执行mvn tomcat7:run 报了错误,错误信息是“The POM for com.netease.restaurant:Kitchen:jar:1.0.0-SNAPSHOT is missing, no dependency information available”,怎么办?

 

A: 在多项目管理实战中的这个例子中,Restaurant对Kitchen有依赖,如果你直接在Restaurant这个项目中执行 mvn tomcat7:run的话,由于此时Kitchen还没有放到本地仓库中,因此Restaurant找不到这个Kitchen的依赖,所以报错了。解决方案如下:

  1. 可以在Kitchen这个项目中执行 mvn install,此时会把这个Kitchen项目安装maven的本地仓库,然后再在Restaurant项目中引用,就能找到了

  2. 直接在顶层的 restaurant-parent 这个项目下先执行 mvn install,这样的话,顶层的这个父项目会把所有的子项目都安装到本地仓库,并维护好依赖关系

     

posted @ 2016-04-21 23:34  奔跑的大龙猫  阅读(198)  评论(0编辑  收藏  举报