一、setting配置
1、配置本地maven仓库配置
在maven\conf\setting文件中
//maven 本地仓库
C:\javaDevelopment\repo
找到如图配置为maven仓库位置
该配置就是maven依赖下载的jar后所在的位置
2、下载jar包效率慢
在配置文件中找到原来的配置用下文代替,将中央仓库改为国内
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/
二、mvn工程目录结构
ProjectName
-----------src
---main
---jaa
---resource
---test
---jaa
---resource
-----------pom.ml
idea中显示mvn目录结构
三、pom.xml中模块的定位
由下面三个坐标的来定位位置
commons-dbcp //公司和项目名
commons-dbcp //模块名
1.4 //版本号
四、maven命令
1、清除mvn编译打包产生的文件
mvn clean
2、编译主程序
mvn compile
3、编译测试程序
mvn test-compile
4、执行测试程序
mvn test
5、打包
mvn package
6、将项目打包到maven仓库
mvn insatll
五、mvn了解
1、排除依赖
一般是用来解决依赖冲突的
org.springframework.boot
spring-boot-starter-web
//排除依赖的模块
//其中一个依赖
org.springframework.boot //groupId
spring-boot-starter-logging //artifactId
2、依赖传递
当调用多个模块时,如果出现相同的依赖,会就近原则使用依赖
如图最终会导入log4j.1.2.14版本
如果链路长度相同,那么先声明着优先,也就是 dependency 标签的顺序
3、同一管理maven依赖版本
如下例子,可以在pom.xml头部定义properties属性,然后版本号调用该参数
1.8
2.2.2.RELEASE //定义版本属性
org.springframework.boot
spring-boot-starter-web
${spring.version} //同一设置版本
org.springframework.boot
spring-boot-starter-test
${spring.version} //同一设置版本
test
4、继承
解决一个项目的工程使用的依赖版本相同,同一管理项目中引入的maven依赖
1、首先创建一个maven的父工程
2、在子工程中声明引入父工程
3、需要引入的依赖首先在夫工程中声明
4、子工程引入依赖时指定版本号
例子
4.0.0
org.springframework.boot
spring-boot-dependencies
2.2.2.RELEASE
../../spring-boot-dependencies
spring-boot-starter-parent
pom
Spring Boot Starter Parent
Parent pom providing dependency and plugin management for applications
built with Maven
https://projects.spring.io/spring-boot/#/spring-boot-starter-parent
UTF-8
1.8
@
${java.version}
UTF-8
${java.version}
true
${basedir}/src/main/resources
**/application*.yml
**/application*.yaml
**/application*.properties
${basedir}/src/main/resources
**/application*.yml
**/application*.yaml
**/application*.properties
org.jetbrains.kotlin
kotlin-maven-plugin
${kotlin.version}
compile
compile
compile
test-compile
test-compile
test-compile
${java.version}
true
maven-compiler-plugin
true
maven-failsafe-plugin
integration-test
verify
${project.build.outputDirectory}
maven-jar-plugin
${start-class}
true
maven-war-plugin
${start-class}
true
org.codehaus.mojo
exec-maven-plugin
${start-class}
maven-resources-plugin
${resource.delimiter}
false
pl.project13.maven
git-commit-id-plugin
revision
true
yyyy-MM-dd'T'HH:mm:ssZ
true
${project.build.outputDirectory}/git.properties
org.springframework.boot
spring-boot-maven-plugin
repackage
repackage
${start-class}
maven-shade-plugin
package
shade
META-INF/spring.handlers
META-INF/spring.factories
META-INF/spring.schemas
${start-class}
//父工程中引入的依赖
org.springframework.boot
spring-boot-maven-plugin
2.2.2.RELEASE
true
true
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
子工程
4.0.0
//引入父工程
org.springframework.boot
spring-boot-starter-parent
2.2.2.RELEASE
com.example
analysisexcel_weqy_member
0.0.1-SNAPSHOT
analysisexcel_weqy_member
org.springframework.boot
spring-boot-starter-web
//没有指定版本号
5、聚合
当一个模块引入其他子工程时,编译时需要一个一个install,主要解决你执行编译时,你可以把你引入的模块一次性全部编译而不需要把引入的模块一个个编译
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.2.2.RELEASE
com.example
analysisexcel_weqy_member
0.0.1-SNAPSHOT
analysisexcel_weqy_member
//依赖的模块
../test
org.springframework.boot
spring-boot-starter-web
com.mysql.test
demo
0.0.1.RELEASE