快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

maven项目部分知识-创新互联

1.maven项目在pom.xml中用add dependencies加入jar包,搜索不到jar包的解决方案:maven项目部分知识

Window --> Show View --> Other
输入maven
点击选择 Maven Repositories
右键点击 local repository 选择go into
再对 local repository 选择Rebulid Index即可

创新互联建站主营中卫网站建设的网络公司,主营网站建设方案,重庆APP软件开发,中卫h5微信平台小程序开发搭建,中卫网站营销推广欢迎中卫等地区企业咨询

另附:pom.xml下面几个选项的意义:

Overview:显示maven项目的一些基本信息.
Dependencies:添加jar包的页面,很重要!
Plugins:添加maven插件的页面.比如tomcat-maven-plugin等.
Dependency Hierarchy:用于显示jar包的依赖关系.没事的时候可以看看jar包的依赖关系.
Effective POM:显示maven的编译路径,plugin之类的.可以无视.
pom.xml:导入jar包的信息,可以在其中进行修改.重要

2.Dependency scope 是用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。

自从2.0.9后,新增了1种,现在有了6种scope:

   compile
   默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
   provided
   跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
   runtime
   表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。
   test
   表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。
   system
   跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。
   
...

  
   javax.sql
   jdbc-stdext
   2.0
   system
   ${java.home}/lib/rt.jar
  


...

3.运用maven整合velocity 出现异常:
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

出现原因:一种说法:pom.xml文件里面有引入servlet-api.jar 而tomcat下面也有这个包,造成jar包冲突导致的(http://eryk.iteye.com/blog/627761)

解决这个问题的方法就是

对于servlet-ap.jar 使用 标签,编译的时候用到servlet-api和jsp-api,但在打包的时候不用这两个依赖

如下
   javax.servlet
   servlet-api
   2.4
   provided
  

这样修改后,servlet-api.jar就不会在运行tomcat时被import进去了,不会与tomcat自带的servlet-api有冲突

我试了下,对于我这个项目,没有效果,依旧这个错误

另外一种说法:在用maven的时候,经常会遇到依赖重复的问题 ,如果要是依赖多个servlet-api.jar ,代码加载的时候就会报上面错误(http://blog.csdn.net/bbsnba123/article/details/8669191),所以就需要去除,重复的依赖.在eclipse中maven插件中,可以看到依赖重复的位置。打开pom文件,点击Dependency Hierarchy标签。

打开pom文件,在依赖中,加入exclusion标签

  1.             org.apache.velocity
  2.             velocity-tools
  3.             2.0
  4.             
  5.                 
  6.                     javax.servlet
  7.                     servlet-api
  8.                 
  9.             

用此方法,还是报错。

最后,综上两种原因,解决方法如下:

    org.apache.velocity   velocity-tools   2.0   jar   compile      struts-core  org.apache.struts    struts-taglib  org.apache.struts    struts-tiles  org.apache.struts    
  javax.servlet  
  servlet-api  
          
      javax.servlet   servlet-api   2.5   jar   provided  

新闻标题:maven项目部分知识-创新互联
URL链接:http://6mz.cn/article/hdcgj.html

其他资讯