maven整合SSM搭建项目

Maven整合SSM搭建项目

目录

一、概要. 2

1.1 Maven2

1.1.1 Maven的基本概念. 2

1.1.2 Maven的核心概念. 2

1.1.2 Maven的目标. 5

1.1.3 Maven的常用命令. 5

1.2 Spring6

1.2.2  Spring的特点与优点. 8

1.3 Spring MVC10

1.3.1 SpringMVC的基本概念. 10

1.3.2 SpringMVC的运行原理. 11

1.3.2 SpringMVC的接口解释. 12

1.4 MyBatis12

1.4.1 MyBatis概念. 12

1.4.1 MyBatis 特点. 13

1.4.2 MyBatis缺点. 13

二、Guide14

2.1 下载Maven到本地并配置本地仓库和远程仓库. 14

2.1.1 下载 注:本文所有操作在安装并配置jdk版本为1.8的Windows7系统的开发环境进行. 14

2.1.2 配置. 16

2.2 Eclipse中配置Maven环境并创建简单web项目. 18

三、Examples19

3.1 在Eclipse中创建一个简单的Maven项目. 19

3.1.1项目需求. 19

四、API23

4.1 pom.xml23

4.2 applicationContext.xml23

4.3 mybatis.xml24

4.4 Springmvc-servlet24

4.5 web.xml25

五、Maven入门使用常见问题. 27

5.1 我从SVN上下载了一个以Maven构建的工程,下载完毕没有jar包怎么办?. 27

5.2 重新下载Maven工程所依赖的jar包、导入jar包都需要触发Maven工程的build workspace,那么如何才能触发Maven工程的build workspace?. 27

5.3 本地仓库的目录结构是什么样子的?. 27

5.4 有些jar包在dependcy里面有配置,Import了Maven工程,下载完工程所依赖的jar包之后,发现本地仓库里面却没有,怎么办?. 28

5.5 本地仓库中确定已经有jar包了,工程里面却报错,说找不到jar包,该怎么办?. 28

5.6 导入新maven项目后,pom.xml可能出现以下情况:. 28

5.7 如果maven项目变更了jar的依赖关系,重新发布项目到tomcat时经常会部署失败. 29

 

 


 

 

一、概要

1.1 Maven

1.1.1 Maven的基本概念

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。如图:百度百科关于Maven的解释

 

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。Maven增加可重用性并负责建立相关的任务。

 

 

1.1.2 Maven的核心概念

1、Pom

pom是指Project Object Model。pom是一个.xml结尾的配置文件,在maven2里为pom.xml。是maven工作的基础,在执行task或者goal时,maven会去项目根目录下读取pom.xml获得需要的配置信息

pom文件中包含了项目的信息和maven build项目所需的配置信息,通常有项目信息(如版本、成员)、项目的依赖、插件和goal、build选项等等

pom是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的pom需要指定父模块的pom

pom文件中节点含义如下图:

 

2 、Artifact

大致说就是一个项目将要产生的文件,可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId:artifactId:version组成的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中

 

3 、Repositories

Repositories是用来存储Artifact的。如果说我们的项目产生的Artifact是一个个小工具,那么Repositories就是一个仓库,里面有我们自己创建的工具,也可以储存别人造的工具,我们在项目中需要使用某种工具时,在pom中声明dependency,编译代码时就会根据dependency去下载工具(Artifact),供自己使用。

对于自己的项目完成后可以通过mvninstall命令将项目放到仓库(Repositories)中

仓库分为本地仓库和远程仓库,远程仓库是指远程服务器上用于存储Artifact的仓库,本地仓库是指本机存储Artifact的仓库,对于windows机器本地仓库地址为系统用户的.m2/repository下面。

对于需要的依赖,在pom中添加dependency即可,可以在maven的仓库中搜索:http://mvnrepository.com/

 

4、 Build Lifecycle

是指一个项目build的过程。maven的Build Lifecycle分为三种,分别为default(处理项目的部署)、clean(处理项目的清理)、site(处理项目的文档生成)。他们都包含不同的lifecycle。

Build Lifecycle是由phases构成的,

下面重点介绍default BuildLifecycle几个重要的phase(时期),如图所示:

以上的phase是有序的(注意实际两个相邻phase之间还有其他phase被省略,完整phase见lifecycle),下面一个phase的执行必须在上一个phase完成后

若直接以某一个phase为goal,将先执行完它之前的phase,如mvn install

将会先validate、compile、test、package、integration-test、verify最后再执行install phase

 

5 Goal

goal代表一个特定任务

如mvn package表示打包的任务,通过上面的介绍我们知道,这个任务的执行会先执行package phase之前的phase

mvn deploy表示部署的任务

mven clean install则表示先执行clean的phase(包含其他子phase),再执行install的phase。

1.1.2 Maven的目标

Maven主要目标是提供给开发人员:

1)项目是可重复使用,易维护,更容易理解的一个综合模型。

2)插件或交互的工具,这种声明性的模式。

Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM),这是整个Maven系统的基本单元。

Apache Maven 是一种创新的软件项目管理工具,提供了一个项目对象模型(POM)文件的新概念来管理项目的构建,相关性和文档。最强大的功能就是能    够自动下载项目依赖库。

1.1.3 Maven的常用命令

常用命令如下:

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

mvn install -Dmaven.test.skip=true或者mvn install-DskipTests

清除以前的包后重新打包,跳过测试类

 

mvn常用参数
mvn -e
显示详细错误
mvn -U   强制更新snapshot类型的插件或依赖库

(否则maven一天只会更新一次snapshot依赖)
mvn -o  运行offline模式,不联网更新依赖
mvn -N  仅在当前项目模块执行命令,关闭reactor
mvn -pl module_name 在指定模块上执行命令
mvn -ff 在递归执行命令过程中,一旦发生错误就直接退出
mvn -Dxxx=yyy指定java全局属性
mvn -Pxxx引用profile xxx

1.2 Spring

1.2.1 Spring的概念

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

1.2.1 Spring框架特征

框架特征:

轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

MVC——Spring的作用是整合,但不仅仅限于整合,Spring 框架可以被看做是一个企业解决方案级别的框架。客户端发送请求,服务器控制器(由DispatcherServlet实现的)完成请求的转发,控制器调用一个用于映射的类HandlerMapping,该类用于将请求映射到对应的处理器来处理请求。HandlerMapping将请求映射到对应的处理器Controller(相当于Action)在Spring 当中如果写一些处理器组件,一般实现Controller 接口,在Controller 中就可以调用一些Service 或DAO 来进行数据操作 ModelAndView 用于存放从DAO 中取出的数据,还可以存放响应视图的一些数据。 如果想将处理结果返回给用户,那么在Spring框架中还提供一个视图组件ViewResolver,该组件根据Controller返回的标示,找到对应的视图,将响应response 返回给用户。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

 

1.2.2  Spring的特点与优点

特点:

1.方便解耦,简化开发

通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2.AOP编程的支持

通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

3.声明式事务的支持

在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

4.方便程序的测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。

5.方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。

6.降低Java EE API的使用难度

Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

7.Java源码是经典学习范例

Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

优点:

Spring有如下优点:

1.低侵入式设计,代码污染极低

2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺

3.Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦

4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用

5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问

6.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

1.3 Spring MVC

1.3.1 SpringMVC的基本概念

Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

SpringMVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个核心是两个核心:

处理器映射:选择使用哪个控制器来处理请求 
视图解析器:选择结果应该如何渲染

通过以上两点,Spring MVC保证了如何选择控制处理请求和如何选择视图展现输出之间的松耦合。

 

1.3.2 SpringMVC的运行原理

(1) Http请求:客户端请求提交到DispatcherServlet。 
(2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 
(3) 调用处理器:DispatcherServlet将请求提交到Controller。 
(4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。 
(6)(7)处理视图映射并返回模型:DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。 
(8) Http响应:视图负责将结果显示到客户端。

 

1.3.2 SpringMVC的接口解释

(1)DispatcherServlet接口: 
Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。 
(2)HandlerMapping接口: 
能够完成客户请求到Controller映射。 
(3)Controller接口: 
需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。 
Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。 
从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。 
(4)ViewResolver接口: 
Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。

1.4 MyBatis

1.4.1 MyBatis概念

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

1.4.1 MyBatis 特点

1.简单易学: 本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2.灵活: mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

3.解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

4.提供映射标签,支持对象与数据库的orm字段关系映射

5.提供对象关系映射标签,支持对象关系组建维护

6.提供xml标签,支持编写动态sql

 

1.4.2 MyBatis缺点

 

1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
2、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。

3、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

4、二级缓存机制不佳

MyBatis架构图

 

二、Guide

2.1 下载Maven到本地并配置本地仓库和远程仓库

2.1.1 下载
注:本文所有操作在安装并配置jdk版本为1.8的Windows7系统的开发环境进行

1、Maven官方网站:https://maven.apache.org/download.cgi

 

 

 

 

2、值得说明下载之后无需安装,解压即可

 

 

 

 


 

2.1.2 配置

1、添加系统环境变量

 

 

添加M2_HOME环境变量指向Maven的安装目录如:我系统中的配置:

M2_HOME: C:\ProgramFiles\apache-maven-3.5.0

在path环境变量中添加;%M2_HOME%\bin

 

2、验证

在命令行执行 mvn-version

 

3、本地仓库和远程仓库的配置

在.m2放入settings.xml使用阿里云的镜像; 如果没有.m2运行mvn命令即可

Maven的本地仓库默认是位于系统当前用户目录中的.m2的隐藏文件下首次启动Maven变会创建此文件夹;如果要更改和自定义该仓库的位置需要修改Maven的配置文件settings.xml,该文件位于系统的

%M2_HOME%/conf/

但是Maven的默认配置文件中的远程仓库都是境外的链接访问速度贼慢

开发过程中比较推荐是使用国内的知名公司的远程仓库下面是该文件的配置信息。

<?xml version="1.0" encoding="UTF-8"?>

<settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <profiles>

        <profile>

            <id>jdk1.8</id>

            <activation>

                <activeByDefault>true</activeByDefault>

                <jdk>1.8</jdk>

            </activation>

            <properties>

                <maven.compiler.source>1.8</maven.compiler.source>

                <maven.compiler.target>1.8</maven.compiler.target>

                <maven.compiler.compilerVersion>

1.8

</maven.compiler.compilerVersion>

            </properties>

        </profile>

    </profiles>

    <mirrors>

    <!-- 局域网内仓库 -->

            <mirror>

            <id>maven603</id>

            <mirrorOf>central</mirrorOf>

            <name>maven 603</name>

            <url>

http://192.168.13.3:8888/nexus/content/groups/public/

</url>

        </mirror>

 

        <!-- 阿里云仓库 -->

        <mirror>

            <id>alimaven</id>

            <mirrorOf>central</mirrorOf>

            <name>aliyunmaven</name>

          <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>

        </mirror>

</settings>


 

2.2 Eclipse中配置Maven环境并创建简单web项目

步骤

    • new- >maven project->create simple->
    • group id -> 所在组织的名字
    • artifact id -> 项目名字

选项介绍

  • 版本号 snapshot 快照版 快速编写代码用于验证项目部分功能或需求
  • 初次创建Maven 项目时间比较长,因为后台会为该项目下载项目需要的jar文件
  • Maven项目的基本结构

至此开发前端准备工作已完成下面根据项目的需要在pom.xml文件中添加和删除Maven坐标既可以方便的管理项目的依赖项啦


 

三、Examples

3.1 在Eclipse中创建一个简单的Maven项目

3.1.1项目需求

要求:使用SSM框架制作一个简单的登录页面可以正常的登录、退出

搭建开发环境

  1. 在Eclipse中创建Maven项目:File>new Maven project>create a simple project skip archetype selection>next

 

  1. 由于没有使用模板配置Maven项目现在开始手动配置:选中刚刚创建的项目\右键菜单\properties\project facets
  2. 选择部署到服务器的资源

 

 

 

 

4、项目骨架搭建完成

 


 

四、API

4.1 pom.xml

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

<modelVersion>:描述这个POM文件是遵从哪个版本的项目描述符。

<groupId>:是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

<artifactId>:项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

<version>:版本号

<packaging>:打包方式(pom、war、jar)

<name>:项目名称(用户描述项目的名称,可选)

<peoperties>:声明相应的版本信息,用于统一版本的管理

<dependencies>:内部写依赖项

<dependency>:内部写依赖项的groupId、artifactId、version

<build>: build元素概念性的划分为两个部分:BaseBuild(包含poject build和profile build的公共部分,见下)和poject build包含的一些高级特性。

<resources>:(通常)不是代码,他们不被编译,但是被绑定在你的项目或者用于其它什么原因,例如代码生成。

<directory>:定义resource所在的文件夹,默认为${basedir}/src/main/resources

<includes>:指定作为resource的文件的匹配模式,用*作为通配符。

POM文件的详解

4.2 applicationContext.xml

该配置文件为对应的是系统级别的配置,作用范围是系统上下文。

上图中的注释非常清楚。还有不清楚点下面的连接学习。

applicationContext.xml详解

4.3 mybatis.xml

上图中可见,我们的该配置文件里基本没有内容,只有一个控制台输出配置。我们的其他可配置信息都在其他配置文件中配置过了。

想要深入了解MyBatis或了解Mapper的数据库配置文件请点击

4.4 Springmvc-servlet

该配置文件对应的是 controller 级别的配置,作用范围是控制层上下文。

主要注册控制器层的对象池。也可以在其中配置拦截器。

4.5 web.xml

该配置文件为WEB项目的配置文件,其中配置了许多web相关的配置项。值得我们注意的是:

<context-param>:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数 - 通常是整个项目中通用的配置bean(一般用于加载除Web层的Bean(如DAO、Service等),以便于与其他任何Web框架集成)。

param-name设定上下文的参数名称。必须是唯一名称。

param-value设定的参数名称的值,多个参数使用逗号分割。

DispatcherServlet:SpringMVC DispatcherServlet是继承自HttpServlet一个 Servlet类 ,它实现对请求进行拦截。 DispatcherServlet需要在你的应用的Web.xml声明加载。默认情况,Spring MVC会在WEB-INF寻找 dispacher-servlet.xml。

ContextLoaderListener: 启动ContextLoaderListener监听器,需要在Web.XML中添加如下配置,它会自动装配ApplicationContext的配置信息。

web.xml详解

五、Maven入门使用常见问题

5.1 我从SVN上下载了一个以Maven构建的工程,下载完毕没有jar包怎么办?

从资源库上下载下来的Maven工程,是没有jar包的,此时可以这么做:

1)删除Maven工程,但是删除的时候不要删除本地工程里面的Maven工程,只删除Eclipse中的Maven工程

2)右键Import->->Existing Maven Projects,导入你的Maven工程,此时Eclipse在构建工程的时候,假如你的本地仓库中没有dependcy中的jar包,便会去远程仓库下载jar包到本地仓库中。你的工程导入完毕之后,Library应该是这样的:

5.2 重新下载Maven工程所依赖的jar包、导入jar包都需要触发Maven工程的build workspace,那么如何才能触发Maven工程的build workspace

找到一个pom.xml,随便修改一下,加一个空格、减一个空格什么的,ctrl+s保存一下,便会触发Maven工程的build workspace

 

5.3 本地仓库的目录结构是什么样子的?

groupIdartifactIdversion确定一个唯一的Maven,比方说我有一个mybatisdependcy:

1

2

3

4

5

<dependency>

    <groupId>org.mybatis</groupId>

    <artifactId>mybatis</artifactId>

    <version>3.2.5</version>

</dependency>

那么mybatisjar包应该在%Maven仓库地址%\org\mybatis\mybatis\3.2.5\这一路径下,先groupId,再mybatis,最后version,每个名字都是一个文件夹的名字

5.4 有些jar包在dependcy里面有配置,ImportMaven工程,下载完工程所依赖的jar包之后,发现本地仓库里面却没有,怎么办?

可能是原先下载jar包的时候出了什么问题,从artifactId目录开始删除以下的所有文件/文件夹,然后触发一次Maven工程的build workspace就可以了

 

5.5 本地仓库中确定已经有jar包了,工程里面却报错,说找不到jar包,该怎么办?

应该有很多解决办法,目前解决的一种办法是,Eclipse->Window->Preferences->搜索Maven->User Settings,Update SettingsReindex点一下就好了。另外,可以尝试一下把本地Maven仓库内的jar包删除一下,然后重新build workspace,可能也可以。

 

5.6 导入新maven项目后,pom.xml可能出现以下情况:

    Cannot upgrade/downgrade toDynamic Web Module 3.0 facet. It is incompatibile with already installedfacets:Java 1.5. Please modifyproject   configuration.

    解决方法:

    1、项目右键->属性->java Compiler,设置编译时的jdk版本和系统使用的一致。

    2、还是在属性面板中,找到Eclipse->ProjectFacetsDynamic Web Module,可适当降低其版本。

   3、项目右键->Maven >Update Project Configuration->Update Project...,然后选中Update project configuration from pom.xmlClean projects2项,完成即可)。

5.7 如果maven项目变更了jar的依赖关系,重新发布项目到tomcat时经常会部署失败

      MyEclipse中,如果maven项目变更了jar的依赖关系,重新发布项目到tomcat时经常会部署失败,状态前有个黄色的三角形,提示信息:Deployment is outof date due to changes in the underlying project contents. You'll needto manually 'Redeploy' the project to update the deployed archive.

   解决方法:选中项目名,选择Project —>Clean,找到要清理的项目,点击确定即可。

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值