文档章节

Maven使用常见问题总结及解决方案

陈小扁
 陈小扁
发布于 2016/04/12 12:51
字数 715
阅读 257
收藏 2

Maven使用常见问题总结及解决方案

相信很多人都知道maven,在工作开发中可能会经常碰到各类maven编译的问题, 下面我会逐步的去总结一些maven在日常工作中遇到的一些问题及解决的方案

  1. 开发过程中如果有用到json-lib,可能会在编译的时候出现以下问题:

[ERROR]Failure to find net.sf.json-lib:json-lib:jar:2.4 in http://repo.maven.apache.org/maven2 was cached in the local repository
resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

  解决方案需要在pom.xml添加以下内容:

<!--json-lib-->
<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

  

   2. 开发过程中有的时候编译项目可能会遇到以下问题:

java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)

  解决方案是需要在pom.xml添加以下内容:

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>

 

    3. maven项目编译过程可能会经常以下问题:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project dubbo-common: There are test failures.

   解决方案是编译命令行加上 -Dmaven.test.skip

mvn clean install -Dmaven.test.skip
或者
mvn clean install -DskipTests

4. 很多时候在maven项目中创建module项目会发现很慢 需要加一个参数archetypeCatalog=internal,不加这个参数,在maven生成骨架的时候将会非常慢,有时候会直接卡住

5. 有时候启动tomcat项目在catalina.out中会出现以下错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        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 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

 

对于这种错误可以从下面几个方面解决:

首先问题的根源在于jdk的版本可能不对导致,所以这时候你需要通过java -version或者 javac -version命令来查看jdk版本是否是一致的

其次通过下面几步来解决这个问题

1. 编辑.bash_profile文件,加入jdk的环境变量,注意顺序

export JAVA_HOME=/usr/local/jdk1.8.0_72
export PATH=$JAVA_HOME/bin:$PATH

2.编辑.bashrc 也是加入jdk环境变量 

export JAVA_HOME=/usr/local/jdk1.8.0_72
export PATH=$JAVA_HOME/bin:$PATH

3.找到tomcat/bin目录中的catalina.sh脚本,在首句加入jdk的环境变量

export JAVA_HOME=/usr/local/jdk1.8.0_72
export JRE_HOME=/usr/local/jdk1.8.0_72/jre
CATALINA_OPTS="$CATALINA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=debugPort,server=y,suspend=n"
# OS specific support.  $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac

按照上面几步做,基本这个问题应该可以解决了,另外上面的操作是对linux上面的

© 著作权归作者所有

共有 人打赏支持
陈小扁

陈小扁

粉丝 49
博文 87
码字总数 70752
作品 0
浦东
高级程序员
微服务开发架构——Spring Cloud常见问题与总结Turbine 聚合数据不完整

个人GitHub地址:https://github.com/leebingbin/ 在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。 三、Turbine 聚合数据不完整 在某些版本的S...

Mr_ET
2017/11/01
0
0
Maven开发Android的常见问题

序 在高效建立健壮的Android应用-Maven Android 开发文中提到,Maven in Android 听起来很牛逼,你是不是很想马上弄个HelloWorld,但是你可能要懊恼了,因为你马上回碰到Project build error: ...

五大三粗
2015/09/21
57
0
微服务开发架构——Spring Cloud常见问题与总结Hystrix/Feign 整合Hystrix后首次请求失败

个人GitHub地址:https://github.com/leebingbin/ 在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。 关于“Eureka常见问题”可以参考,我之前的文...

Mr_ET
2017/10/30
0
0
Maven学习:部分常见问题记录

1、Maven打包时出现错误:File encoding has not been set, using platform encoding GBK 解决方案: 在下加入 UTF-8 如果是maven3,则只需要 UTF-8 2、m2e打包时出现错误:Unable to locate ...

anrainie
2012/12/11
0
0
使用Maven开发Android的常见问题

序 在[高效建立健壮的Android应用-Maven Android 开发][1]文中提到,Maven in Android 听起来很牛逼,你是不是很想马上弄个HelloWorld,但是你可能要懊恼了,因为你马上回碰到Project build e...

花米
2013/11/12
0
6

没有更多内容

加载失败,请刷新页面

加载更多

Linux 中不适用功能键切换TTY

本简要指南介绍了在类 Unix 操作系统中如何在不使用功能键的情况下切换 TTY。在进一步讨论之前,我们将了解 TTY 是什么。正如在 AskUbuntu 论坛的一个答案[1]中所提到的,TTY这个词来自 Tele...

问题终结者
10分钟前
0
0
OSChina 周三乱弹 —— 我自己总觉得我的灵魂有毒

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Devoes :分享王菲的单曲《匆匆那年 (Fleet of Time)》 《匆匆那年 (Fleet of Time)》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) 天长地...

小小编辑
17分钟前
3
3
深度学习与图像处理实例:人像背景虚化与背景替换

简单人像背景虚化处理思路如下: 对图像内容分割,提取人像,背景 背景模糊处理 人像与模糊处理后的背景融合 本实例使用DeepLabV3图像分割深度学习模型实现。代码如下: import numpy as np...

IOTService
昨天
0
0
八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
昨天
8
0
20180918 find命令与Linux文件扩展名

命令find 用来查找搜索文件。 搜索文件相关命令: which 从环境变量里的目录中去搜索 whereis(不常用) 从一个固定的库中搜索 locate(需要单独安装 yum install -y mlocate) 查询时会从/var/...

野雪球
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部