1.在项目根目录下运行 mvn clean compile
2.需要执行测试 mvn clean test
3.mvn clean package 打包
3. mvn clean install 把构件安装到本地仓库
4.为了生成可执行的jar文件,需要借助maven-shade-plugin
Maven的坐标元素包括groupId,artifactId,version(必选三个)
package,classifier(可选)
version:当前所处的版本
classifier:用来帮助定义输出的一些附属构件。java文档和源代码就是这两个附属构件的classifiere
5.依赖范围Scope
compile:编译依赖范围,默认
test:测试依赖范围
provided:已提供依赖范围,对于编译你和测试的classpath有效,但在运行时无效。典型的例子
是servlet-api,编译和测试项目的时候需要使用该依赖,但是在运行项目事,由于容器已经提供,
就不需要maven重复地引入依赖
runtime:运行范围内有效。JDBC驱动
system:系统依赖范围
2.需要执行测试 mvn clean test
3.mvn clean package 打包
3. mvn clean install 把构件安装到本地仓库
4.为了生成可执行的jar文件,需要借助maven-shade-plugin
Maven的坐标元素包括groupId,artifactId,version(必选三个)
package,classifier(可选)
version:当前所处的版本
classifier:用来帮助定义输出的一些附属构件。java文档和源代码就是这两个附属构件的classifiere
5.依赖范围Scope
compile:编译依赖范围,默认
test:测试依赖范围
provided:已提供依赖范围,对于编译你和测试的classpath有效,但在运行时无效。典型的例子
是servlet-api,编译和测试项目的时候需要使用该依赖,但是在运行项目事,由于容器已经提供,
就不需要maven重复地引入依赖
runtime:运行范围内有效。JDBC驱动
system:系统依赖范围
6传递性依赖和依赖范围
7.依赖调节
1.路径最短原则
2.声明优先原则
8.可选依赖
便于互斥特性的传递
9.排除依赖&归类依赖&优化依赖
传递性依赖产生问题,eg:当前项目有一个第三方依赖,二这个第三方依赖由于某些原因依赖了另外一个类库的snapshot版本,那么它可能会影响当前项目,这时候就需要
排除这个依赖。
归类依赖:
例如:用property的值替换所有
优化依赖:mvn dependency:list 显示已解析依赖,同时,每个依赖的范围也得以明确表示
mvn dependency:tree 依赖树,通过这颗依赖书就能很清楚地看到某个依赖是通过那条路径传入的。
mvn dependency:analyze