maven

Maven 学习笔记

设计目标

  • 项目是可重复使用,易于维护、更容易理解的综合模型
  • 工具插件化、可交互

Maven资源库

  • Maven本地仓库, 默认.m2目录
  • Maven中央存储库,maven下载所有依赖的默认位置
  • Maven远程仓库:在pom中添加repo
  • 搜索仓库的顺序:
    1. 在 Maven 的本地仓库搜索 log4j
    2. 在 Maven 中央存储库搜索 log4j
    3. 在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)
1
2
3
4
5
6
 <repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>

TIPS

不执行测试用例

在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,
会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:

  • -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
  • -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类

Scope

  • compile 最强依赖,传递
  • provided 参与编译,依赖不传递,不打进包里,由运行时系统提供
  • runtime 运行时,如:JDBC
  • test 编译运行测试代码,不会发布
  • system 类似于provided,但是不会再repo里查找,需要引用外部jar

常用命令

  • mvn compile
  • mvn test-compile 编译测试代码
  • mvn test 运行测试
    • 运行指定测试用力
  • mvn site,package,install,clean
  • mvn eclipse:eclipse
  • mvn idea:idea
  • mvn -Dtest pakcage 只打包不测试
  • mvn jar:jar只打jar包
  • mvn eclipse:clean清除eclipse的一些系统设置
  • mvn validate 验证工程所需资源