SSH项目总结(一) Maven构建SSH项目遇到的问题

这个系列是我对自己这段时间项目的学习,总结出来的一些经验。网上的案例往往太过陈旧,提供不了太过直接有效的建议,希望我这个系列能够帮到查询资料的同学,能够节省时间做一些更有意义的事情。水平有限,有不正确的地方,请在评论区告诉我。谢谢!!- 问题:想使用2.5.14.1版本的Struts2 和5.0.4.RELEASE版本的Spring,可是却使用的是4.1.9.RELEASE版本的Spring-web版本

  • 解决方法:
  • 确定框架的Jar包的依赖有没有问题
  • 如果Jar包的依赖确定没有问题,那么大概率应该是遇上了Maven的传递传递问题,如果你想了解理论:https://www.cnblogs.com/ygj0930/p/6628429.html,如果不想知道那么多,那么你可以查看框架的Maven依赖,那么新的问题又来了?
    如何查看项目的Maven依赖,到这个网站http://mvnrepository.com/例如搜索struts2-core     
    图片描述
    选择相应的版本,例如我的是2.5.14.1,那么找到Compile Dependcies,可以看出可以看出Struts2 本身使用的Spring是4.19版本

图片描述

问题解决

  • 问题:Spring项目依赖问题?

  • 解决:https://www.cnblogs.com/ywlaker/p/6136625.html(博文写的十分详细),Spring的框架的是分模块的,一般只需添加spring-context,spring-webmvc两个依赖

  • 问题:Maven Build时提示:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test

  • 解决:添加Maven插件 依赖

<!-- 打包的跳过test -->
<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.21.0</version>
     <configuration>
     <skipTests>true</skipTests>
     </configuration>
</plugin>
  • 问题:想要把项目部署到本地Tomcat的webapp项目下,需要怎么做?
  • 解决:
  • 在你的tomcat安装目录conf/tomcat-users.xml下添加以下代码 <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
<!-- 以上是用户权限设置 下面一句是用户名和密码设置,以及用户的所拥有的权限 -->

<user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/> 如果你使用的Eclipse 的话,你就必须小心了,你会发现你用Eclipse启动Tomcat后,Tomcat的tomcat-users.xml文件又会变成初始状态,Eclipse本身会在启动Tomcat服务器时,将Eclipse默认Tomcat的tomcat-users.xml覆盖到服务器下所以你需要Eclipse 打开Navigator面板(打开方式为Windows>Show View >Navigator),找到Server文件夹,会看到tomcat-config下的tomcat-user.xml,然后添加以上代码,你的用户名和密码,可以随意取,但是必须和接下来的配置一样才行

  • 你还需要到本机的Maven安装目录下conf/settings.xml,添加以下 <!-- <servers>节点下的代码 <id>可以随意取,但是接下来的代码会用到 用户名密码配置必须和上面一样 -->

<server> <id>localTomcat</id> <username>root</username> <password>root</password> </server> - 最后一步,项目的pom.xml添加代码 <!-- 这是Tomcat7的Maven官方插件 如果你是Tomcat8的用户,那么这个插件同样适用, 另外Tomcat8还有一个版本的插件,没有具体使用过,不知道详情 <url>是Tomcat7插件的属性而已,我是Tomcat的运行端口是8090,你需要改成自己的端口 <url>http://localhost:${你的端口号}/manager/text</url> <server>localTomcat</server> 需要和之前配置相同 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8090/manager/text</url> <server>localTomcat</server> <update>true</update> </configuration> </plugin> - 补充两个最常用的命令,tomcat7:deploy,tomcat7:redeploy    问题解决