2. 补充Maven配置本地仓库
**配置**:windows–>preferences–>Maven–>UserSetting **参考文档**:- 参考文档1:Maven本地仓库配置
- 参考文档2:修改maven本地仓库路径 .
3. 新建Maven工程,不显示源文件包
- 现象:eclipse创建maevn web项目,在选择maven_archetype_web原型后,默认只有src/main/resources这个Source Floder
- 解决办法:在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了
- 参考文档:解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
4. Maven显示红叉,pom.xml文件内没有报错,Problems中显示:maven missing artifact
- 问题:仓库中没有找到对应的jar包文件
- 解决办法:可以配置多个仓库,远程和本地的,(可以参考博客其它内容)
- 参考文档1:解决Maven的“Missing artifact ……”问题
5. Maven中ArtifactDescriptorException的解决方法
出现该问题原因:在Maven工程中的pom.xml中引入以下内容:
<dependency> <groupId>org.forgerock.openam</groupId> <artifactId>openam-oauth2</artifactId> <version>${openam.version}</version> </dependency>
- 问题解决:好像是无法解析
${openam.version}
,将其改为12.0.0就可以了,难道Maven不支持${openam.version}
这种写法?可我是在github中直接clone过来的呀(看来Maven还要好好学习呀) - 参考文档:ArtifactDescriptorException的解决方法
6. Maven-web工程报错:Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
- 参考文档:Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
7. ★★Maven工程:problems中报如下错误,且package Explorer视图下工程中图标有小红叉、但工程下的文件没有显示红叉
错误提示
- 错误1:Description Resource Path Location Type Cannot change version of project facet Dynamic Web Module to 3.0. shiro_learn1 line 1 Maven Java EE Configuration Problem
- 错误2:Description Resource Path Location Type One or more constraints have not been satisfied. shiro_learn1 line 1 Maven Java EE Configuration Problem
解决方法
第一步:参照下面的参考文档,对自己工程中的相关文档进行修改
第二步:★右键项目 > Maven > Update Project Configuration。OK完美解决- 参考文档:
参考文档1:Cannot change version of project facet Dynamic web
参考文档2:解决Cannot change version of project facet Dynamic web module to 2.5 - 问题
参考文档1和参考文档2两个文档中说得内容有点不同。即:org.eclipse.wst.common.component 文件的”project-version”是否要改,暂时没有系统学习Maven,所以这个问题只能暂时放在这里了,如果有理解具体意义,方便的话告知一下喽。
8. ★★Maven工程右键进入Maven > Project Facets > Dynamic Web Module 改为3.0报错:Cannot change version of project facet Dynamic web module to 3.0
- 解决方案:
在maven工程中引入本地jar包或安装本地jar包到本地仓库。引入本地jar包:假设引入本地C:\Users\yangping\Desktop\a\下的IKAnalyzer3.2.8.jar包,则在pom.xml中配置依赖如下:
<dependency>
<groupId>org.wltea</groupId>
<artifactId>IKAnalyzer</artifactId>
<version>3.2.8</version> <systemPath>C:\Users\yangping\Desktop\a\IKAnalyzer3.2.8.jar</systemPath>
</dependency>
9. 安装本地jar包到本地仓库
第一步:将要安装的jar包拷贝到仓库相应目录下并在该目录下创建hw-openam-restlet-extension-0.0.1.pom
<?xml version="1.0"encoding="UTF-8"?>
<projectxsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>openam</groupId>
<artifactId>hw-openam-restlet-extension</artifactId>
<version>0.0.1</version>
<description>Hw Local openam Repository</description>
</project>
第二步:打开cmd ,进入到F:\bx_maven2.m2\repository\com\myxmlbean\customerXmlBean\2.6.0文件夹,运行下面命令如下命令:
mvn install:install-file -Dfile=chw-openam-restlet-extension-0.0.1.jar -DgroupId=openam -DartifactId=hw-openam-restlet-extension -Dversion=0.0.1 -Dpackaging=jar
参考文档:http://m.blog.youkuaiyun.com/blog/lock0531/25891159
10. Maven工程:Non-resolvable parent POM: Failure to find
- 解决方案:应该在元素下一级添加用来指定正确的父pom路径,默认为../pom.xml
- 参考文档:Maven:Non-resolvable parent POM: Failure to find错误
11.异常:UnsupportedClassVersionError: Unsupported major.minor version 51.0
- 分析原因:jdk版本不对,对于java程序员来讲这是个永恒的话题。多次被它整得无可奈何。下面我列举出来的一些常见配置jdk的配置。
- 环境变量JDK(如果安装了多个jdk环境的情况)、项目引入的Lib包、Java Compiler、Java Facets
- eclipse的Navigator视图对应工程下的.settings文件夹的诸多文件:如org.eclipse.jdt.core.prefs文件中的配置
- 对于Maven项目还有:pom.xml中配置的编译环境、maven根目录中setting.xml文件中配置的环境
- 参考文档1:错误:Unsupported major.minor version 51.0(jdk版本错误)
- 参考文档2★★:【java.lang.UnsupportedClassVersionError】版本不一致出错
12. Maven本地仓库中的jar包名字后有lastUpdate
- 原因:maven从nexsu上面拉jar包,有时会因为网络问题导致下不了包,这时候文件夹内会个*lastUpdated.properties的文件,而这文件的存在会导致下次服务器不会去下载这个包,这时候要删掉这个文件才能让maven再次去下载。以下分别是windows下和linux下的批量删除该文件命令:
- 解决方案:
- windows下的命令:*del D:\HwRepository\maven_repository.m2\repository*lastUpdate /a/s
- linux下的命令:find ./ -name “*lastUpdated” | xargs -i -t rm {} -rf
- 删除少于10k的jar:find ./ -size -10k -name “.jar” | xargs -i -t rm {} -rf
- 参考文档:maven下载jar包问题
其它方式:参考文档:Maven库中.lastUpdated文件自动清除工具
13. Maven运行报错:-Dmaven.multiModuleProjectDirectory system propery is not set.
- 原因:Maven环境配置错误,应该设一个环境变量M2_HOME指向你的maven安装目录
- 解决方式:Window->Preference->Java->Installed JREs->Edit。在Default VM arguments中设置-Dmaven.multiModuleProjectDirectory=$M2_HOME。图示如下: