maven使用中的常见异常问题整理

结合网络大神提供的异常错误,及加上自身开发中时常遇到的一些问题,汇总到博客中,如有问题,谢谢提议;

Maven使用常见问题整理

 

1、更新eclipse的classpath加入新依赖

 

1、在dependencyManagement里面加入包括版本在内的依赖信息,如:

              <dependency>

                     <groupId>joda-time</groupId>

                     <artifactId>joda-time</artifactId>

                     <version>1.6.2</version>

              </dependency>

 

2、在同级的dependencies节点里面加入该依赖,如:

              <dependency>

                     <groupId>joda-time</groupId>

                     <artifactId>joda-time</artifactId>

              </dependency>

 

3、使用mvn eclipse:clean删除当前的工程配置文件,并用mvn eclipse:eclipse重新生成。

 

4、导入或刷新该eclipse工程。

 

2、工程配置未使用pom.xml更新

 

问题:Project configuration is not up-to-date with pom.xml

 

导入maven工程后,出现如下错误:

Description    Resource    Path    Location    Type

Project configuration is not up-to-date with pom.xml. Run project configuration update 
rdc  line 1  Maven Configuration Problem

 

解决办法就是:

右键项目,【Maven】--》【Update Project Configuration...】即可。。。

 

3、如何修改默认GBK的资源过滤

Using platform encoding (GBK actually) to copy filtered resources

 

需要指定字符集:

<plugin>

       <groupId>org.apache.maven.plugins</groupId>

       <artifactId>maven-resources-plugin</artifactId>

       <version>2.2</version>

       <configuration>

                <encoding>UTF-8</encoding>

       </configuration>

</plugin>

 

 

4、不支持范型的JDK版本问题

 

maven打包时始终出现TripApplyAction.java:[267,6]-source 1.3中不支持泛型(请使用-source 5或更高版本以启用泛型)Map<String, Object> map = new HashMap<String, Object>();

 

解决方法,指定JDK版本:

 

在pom.xml文件中加入下一面一段语句来指定所用的版本,尽管在eclipse中配置了正确的“Build Path”:

<build>

   <plugins>

       <plugin>

           <artifactId>maven-compiler-plugin</artifactId>

           <configuration>

               <target>1.5</target>

               <source>1.5</source>

               <encoding>UTF-8</encoding>

           </configuration>

       </plugin>

   </plugins>

</build>

 

重新运行mvn clean eclipse:eclipse -Dmaven.test.skip=true,接着mvn package,问题解决。

 

5、如何在使用命令方式下载依赖的同时下载源码

 

1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。

 

2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。

 

 

7、maven打包,忽略test的参数

 

mvn -Dmaven.test.failure.ignore=true package

mvn -Dmaven.test.skip=true clean package

 

 

8、web.xml which will be ignored

 

[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored

(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')

 

在使用Maven 编译项目的时候会出现

 

[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored

 

解决方法:

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<version>2.1.1</version>

<configuration>

<!-- http://maven.apache.org/plugins/maven-war-plugin/ -->

<packagingExcludes>WEB-INF/web.xml</packagingExcludes>

</configuration>

</plugin>

 

9、Maven3.04暂时不支持Servlet3的无web.xml形式

 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project prospringmvc01: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) ->

 

 

10.maven 项目站点生成时错误集锦

1    org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18

 

2         changeLog 日志配置使用必需先配好scm信息

>> 版本控制报告:ChangeLog

 

maven-changelog-plugin能够基于版本控制系统中就近的变更记录生成三分变更报告:

 

* Change Log:基于提交的变更报告,包括每次提交的日期、文件、作者、注释等

 

* Developer Activity:基于作者的变更报告,包括作者列表以及每个作者相关的提交次数和涉及文件数目。

 

* File Activity:基于文件的变更报告,包括变更的文件列表以及每个文件的变更次数。

 

要想使用ChangeLog插件,必须先定义好SCM信息:

Xml代码  收藏代码

 

    <scm> 

        <connection>scm:svn:http://192.168.1.103/app/trunk</connection> 

        <developerConnection>scm:svn:https://192.168.1.103/app/trunk</developerConnection> 

        <url>http://192.168.1.103/account/trunk</url> 

    </scm> 

 

有了scm信息,开始配置maven-changelog-plugin了:

Xml代码  收藏代码

 

    <plugin> 

        <groupId>org.apache.maven.plugins</groupId> 

        <artifactId>maven-changelog-plugin</artifactId> 

        <version>2.2</version> 

        <configuration> 

                    <type>range</type> 

                    <range>60</range> 

                </configuration> 

    </plugin> 

 

 

11.个人使用插件环境配置问题

1. Could not resolve dependencies for project

Failed to execute goal on project user-dao: Could not resolve dependencies for project org.konghao.user:user-dao:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.konghao.user:user-log:jar:0.0.1-SNAPSHOT: Failed to read artifact descriptor for org.konghao.user:user-log:jar:0.0.1-SNAPSHOT: Could not find artifact org.konghao.user:user-parent:pom:0.0.1-SNAPSHOT in Nexus2 (http://192.168.18.246:8089/nexus/content/groups/public) -> [Help 1]

[ERROR]

 

maven中maven dependencies中依赖出现了项目,把依赖的项目关掉,项目消失,但是还是无法打包 ,出现的错误如图。说明:依赖的项目为project-dao  打包的项目为project-service  都在project-parent中有依赖。project-dao是可以打包成功的。project-service中依赖dao的jar包也可以过来。

 

参考: http://www.oschina.net/question/143808_156035

 

 

2. 将本地jar放入到maven私服中

<dependency>
  <groupId>javabuilder</groupId>
  <artifactId>javabuilder</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/javabuilder.jar</systemPath>
</dependency>

 

3. 解决Maven关于本地jar包的打包处理

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>2.3.2</version>
 <configuration>
 <source>1.7</source>
 <target>1.7</target>
 <encoding>UTF-8</encoding>
 <compilerArguments>
  <extdirs>project-demo\lib</extdirs>
  </compilerArguments>
 </configuration>
</plugin>

 

4. javax/servlet/ServletException 类格式异常

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException

         at java.lang.ClassLoader.defineClass1(Native Method)

         at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

         at java.security.AccessController.doPrivileged(Native Method)

         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)

         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

         at java.lang.ClassLoader.defineClass1(Native Method)

         at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

         at java.security.AccessController.doPrivileged(Native Method)

         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)

         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

         at java.lang.Class.getDeclaredMethods0(Native Method)

         at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)

         at java.lang.Class.getDeclaredMethods(Class.java:1868)

 

 

解决方法: 注释

<!-- j2ee web-6.0 -->
<!-- <dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-web-api</artifactId>
</dependency> --> 

 

 

5. JSP页面加载报错not native or abstract in class file javax/el/ValueExpression

 

[WARNING] EXCEPTION

javax.servlet.ServletException: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/el/ValueExpression

   at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:939)

   at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:871)

   at org.apache.jsp._404_jsp._jspService(org.apache.jsp._404_jsp:116)

   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)

   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)

   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)

   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)

   Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/el/ValueExpression

   at java.lang.ClassLoader.defineClass1(Native Method)

   at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

 

5. No Transaction manager found 启动停顿

 

参考网址: http://blog.csdn.net/chaijunkun/article/details/37923905

 

6. could not write file: 无法再使用用户映射区域打开文件

    jetty启动时,配置,解除资源文件锁定

7. Maven 项目工程延迟问题

1.debug模式进入提示参数已是Long类型

Id 类型为: int(11)

Sql 语句 : SELECT id,cname,flag,layout_type,icon,remark,nlevel,left_id,right_id

FROM `tb_article_classify`

WHERE id='1'

8. A cycle was detected in the build path of project 

解决Eclipse中Java工程间循环引用而报错的问题 (慎用)
如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,那么Eclipse在编译时会抛出如下一个错误信息:
“A cycle was detected in the build path of project: XXX”
解决方法非常简单:
Eclipse Menu -> Window -> Preferences... -> Java -> Compiler -> Building -> Building path problems -> Circular dependencies -> 将Error改成Warning

 

9.Please ensure you are using JDK 1.4 or above and 

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project clothing: Compilation failure

[ERROR] Unable to locate the Javac Compiler in:

[ERROR] C:\Program Files\Java\jre6\..\lib\tools.jar

[ERROR] Please ensure you are using JDK 1.4 or above and

[ERROR] not a JRE (the com.sun.tools.javac.Main class is required).

[ERROR] In most cases you can change the location of your Java

[ERROR] installation by setting the JAVA_HOME environment variable.

[ERROR] -> [Help 1]

[ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

修改jre版本: jare改成jdk

转载于:https://my.oschina.net/java1314/blog/795306

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 面试题整理是为了帮助准备面试的候选人更好地了解面试的内容和要求。对于Java2021的面试题整理,可以从各个方面进行组织和分类,以便更好地帮助面试者准备。下面是我对Java2021面试题整理的一些建议。 1.基础知识:面试题可以包括Java语言的基本语法、关键字、数据类型、流程控制语句、异常处理等方面的问题。这些问题可以帮助面试者检验自己对Java语言基础知识的掌握程度。 2.面向对象:面试题可以涉及Java面向对象的概念、封装、继承、多态以及接口、抽象类等方面的问题。这些问题可以帮助面试者了解Java面向对象编程的特点和应用。 3.集合框架:面试题可以包括关于Java集合框架的知识,如ArrayList、LinkedList、HashSet、HashMap等的特性、用法和区别。这些问题可以帮助面试者检验自己对Java集合框架的理解和应用能力。 4.多线程:面试题可以涉及Java多线程编程的基本概念、线程的创建与启动、线程同步与互斥、线程池等方面的问题。这些问题可以帮助面试者了解多线程编程的原理和实践。 5.IO流:面试题可以包括关于Java IO流的知识,如输入输出流的分类、字符流和字节流的区别、文件读写操作等方面的问题。这些问题可以帮助面试者检验自己对IO流的理解和应用。 6.异常处理:面试题可以涉及Java异常处理的机制、try-catch语句的使用、自定义异常等方面的问题。这些问题可以帮助面试者了解异常处理的原理和常见应用。 7.Java虚拟机:面试题可以包括Java虚拟机(JVM)的基本概念、内存模型、垃圾回收算法等方面的问题。这些问题可以帮助面试者了解JVM的工作原理和性能优化。 8.框架和工具:面试题可以涉及Java常用的开发框架和工具,如Spring、Hibernate、MyBatis、Maven等方面的问题。这些问题可以帮助面试者了解开发框架的应用和工具的使用。 通过对这些方面的面试题整理,可以帮助面试者全面了解Java2021面试的内容和要求,并有针对性地准备和复习相关知识。面试者应该注重理论的学习,同时结合实践经验进行练习,以便在面试时能够更好地展示自己的能力和潜力。同时,面试者还应注意自己的沟通能力、问题分析能力和解决问题的能力,这些都是面试过程重要的评估指标。 ### 回答2: Java2021面试题整理主要集在以下几个方面: 1. 基础知识:Java的基本数据类型、变量和常量、运算符、控制语句等内容是面试常见的考点。面试官会通过这些问题判断候选人对Java基础知识的熟悉程度和掌握能力。 2. 面向对象编程:Java是一门面向对象的编程语言,所以面试对面向对象的理解和应用也是重要的考点。常见问题包括类和对象、继承和多态、封装和抽象等。 3. 异常处理:Java异常处理是编程的重要内容,面试会涉及到异常的概念、异常的分类、如何捕获和处理异常、自定义异常等。 4. 集合框架:Java集合框架是Java开发常用的工具,常见的面试题会涉及到ArrayList、LinkedList、HashMap等集合的特点和应用场景,以及集合的遍历和使用方法。 5. 多线程:Java是一门支持多线程的语言,所以多线程的知识也是面试的热点考点。常见问题包括线程的生命周期、线程同步与互斥、线程间的通信、线程池等。 6. JVM相关知识:Java虚拟机(JVM)是Java运行的基础,所以对JVM的了解也是面试的重要考点。常见问题包括JVM的结构、内存模型、垃圾回收机制等。 此外,面试还可能涉及到数据库、网络编程、设计模式等其他相关知识。因此,面试前需要对Java的相关知识有全面的掌握,并且要能够灵活运用这些知识进行问题的解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值