新建maven工程时
1故障:-Dmaven.multiModuleProjectDirectory system property
is not set. Check $M2_HOME environment variable and mvn
script match.
去java中jdk版本设置的位置"编辑",Default Vm...后面
拷贝粘贴:注意M2_HOME是maven环境变量的名称我的是M2_HOME
-Dmaven.multiModuleProjectDirectory=$M2_HOME
2出现白本错误多数因为eclipse的启动内存问题
Maven创建 An internal error occurred during
eclipse.ini或者myeclipse.ini修改文件中的以下配置:
-Xms512m
-Xmx1024m
解释:第一个是最小的初始化内存,第二个是最大的占有内存
在测试类中如果@Test不能导入jar包
需要在pom.xml中更改junit的版本为4.9
3.在pom文件中dependency Hie...中可以看到jar包之间的依赖
4.Maven 中央仓库地址如下,另外一般都是进入页面后找到自己需要的jar包然后会自动出现GAV的书写直接 粘到pom文件即可,部分公司使用私人库下载:
①. http://www.sonatype.org/nexus/
②. http://mvnrepository.com/ (推荐仓库)
③ http://repo1.maven.org/maven2
5依赖传递:jar包里面可能还要依赖别的jar包,例子:使用spring-test的jar包时,此jar包里还要一个spring-core包,而 这个包还需要依赖commons-logging包,此时即此工程和commons-logging包是依赖传递,
最短路径:maven会自动寻找jar包中最短的路径使用
6引用别的模块的包时,需要把g.a.v粘贴到主动引用的A工程中,前提是被引用工程B需要mvn install了,这样库中才有这个jar包
7依赖排除:当B工程依赖A工程一部分jar包,则在B的pom中写
8聚合:成批量的管理子模块,避免每个工程都install一下.
继承:主要是指继承父工程中的jar包,可以简便的管理jar包的版本,抽出了常用的配置
9如果是普通的web工程创建的时候不能再选择quckstar,而是选择webapp
10 scope意思是范围,
例: 1
说明是junit只在test时参与
例2
spring-test在compile即全程参与
另注依赖范围:
compile:默认是compile,对 编译+测试+运行 都有效
provided:对编译和测试,运行的时候不需要加入
runtime:只在测试和运行时 有效,比较典型的例子 jdbc api,只有在启动代码测试或者运行的时候才会启用
test:只会在测试时有效,比较典型例子 就是junit ,只有再测试的时候 才会启用
11另外注意在web工程中,添加jsp的servlet-api依赖时,需要参考web服务器的容器中是否有自带的servlet-api的jar包,此处可能造成冲突