maven
常见错误:
一..在Eclipse导入已存在工作空间的项目,出现
情况1:
Scanning errors (1):
1 Could not read pom.xml
就是pom.xml出现了不能解析的配置,把不能解析的配置修改过来.例如去掉
<build>
<finalName>testweb</finalName>
</build>
情况2:
No marketplace entries found to handle maven-compiler-plugin:2.3.2:testCompile in Eclipse.
将Eclipse内置的Maven换成外部自己安装的Maven,重启Eclipse.然后,在命令行执行mvn clean install再导入项目.
二.导入项目后出现:
情况1:
Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix.
在Problems View的出错提示右键选Quick Fix,再按提示确定就OK.或者,右键项目->Maven->Update Project
情况2:
JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.
JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer.
先改web.xmlwebapp节点:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
然后关闭Eclipse,改项目下的.settingsorg.eclipse.wst.common.project.facet.core.xml.将版本改成为3.1,将成后是<installed facet="jst.web" version="3.1"/>,再启动Eclipse.最后出现上面的情况1,按上面更新下配置就OK.
三.<addMavenDescriptor>false</addMavenDescriptor>在Eclipse无效,仍然会将pom.xml,pom.properties打包入jar.
在CLI(command-line interface)运行命令,此种情况拒绝使用Eclipse来执行命令(当然你测试打包入去没影响)
maven的5种scope对于3种class是否有效:
[html] view plaincopy
compile test runtime example
compile Y Y Y spring-core
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动
system Y Y - 本地的,maven仓库之外的类库文件
左边为第一直接依赖,上边为第二直接依赖,则对应的依赖传递如下:
[html] view plaincopy
compile test provided runtime
compile compile - - runtime
test test - - test
provided provided - provided provided
runtime runtime - - runtime
依赖调解两原则:
1.路径最近者优先
2.路径长度相同,解析依赖声明靠前优先