1. 定义archetype构建自定义的Maven项目
- 参考文档:使用maven3 创建自定义的archetype .
- 解决过程
我依据上面流程,在”mvn archetype:create-from-project“时报错,报错内容如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:create-from-project (default-cli) on
project shiro_learn2: Error configuring command-line. Reason: Maven executable not found at: D:\HwProgramFiles\maven\apa
che-maven-3.3.3\bin\mvn.bat -> [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
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.csdn.net/blog/lock0531/25891159
10. Maven工程:Non-resolvable parent POM: Failure to find
- 解决方案:应该在元素下一级添加用来指定正确的父pom路径,默认为../pom.xml
- 参考文档:Maven:Non-resolvable parent POM: Failure to find错误