没用maven之前我们遇到什么问题
1. jar包难以寻找
2. jar包依赖关系复杂
3. jar包版本冲突问题
4. jar包不方便管理
maven的安装
1. 安装maven之前先安装jdk。
2. 把maven安装包解压到一个不含中文空格的目录(如:D:\software\apache-maven-3.6.1)。
3. 配置maven环境变量(右击此电脑->属性->高级系统设置->环境变量->系统变量中新建->变量名: MAVEN_HOME, 变量值:D:\software\apache-maven-3.6.1 -> 找到path变量编辑 -> 新加一个%MAVEN_HOME%/bin->确定)。
4. 验证maven是否安装成功:win+r -> cmd -> mvn -v
maven的配置
-
修改maven的仓库位置:在maven的conf目录有一个setting.xml配置文件,修改仓库位置(如果不修改,仓库默认在当前用户下的.m2目录下)
<localRepository>e:\maven\repMaven</localRepository>
-
修改maven的镜像地址(在mirrors标签内添加如下内容)。
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <id>ibiblio</id> <name>Mirror from Maven ibiblio</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>sprintio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>https://repo.spring.io/libs-snapshot/</url> </mirror> <mirror> <id>maven.net.cn</id> <name>Mirror from Maven in china</name> <url>http://maven.net.cn/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
-
修改maven默认jdk版本(在profiles标签内添加如下内容)
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
maven的依赖范围
1. complie: 默认使用该依赖范围,对于编译源码,编译测试代码,测试,运行都有效。
2. test: 只在编译测试,运行测试时有效 如 junit。
3. provide: 编译时有效,运行时无效 如servlet-api。
4. runtime:编译时无效,运行时有效 如jdbc驱动。
maven选择依赖的原则
A->B->C->Y(1.0) A->D->Y(2.0) 路径最近原则 选择2.0
A->B->Y(1.0) A->D->Y(2.0) 看A的dependencies B和D谁在前,谁在前就用谁。
可选依赖(optional)
假设A->B B->C B不想C被A自动依赖 则添加<optional>true</optional>
排除依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
在项目中配置maven仓库nexus私服
1.在项目的pom文件中配置如下内容
<repositories>
<repository>
<id>maven-nexus</id>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
2.在maven的setting.xml配置文件中配置nexus的用户名密码(在servers标签下配置)
<server>
<id>maven-nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
注意事项: repository.id 要和 server.id保持一致
将本地的jar包安装到maven仓库
mvn install:install-file -Dfile=inceptor-sdk-5.0.0.jar -DgroupId=com.transwarp.inceptor -DartifactId=inceptor-sdk -Dversion=5.0.0 -Dpackaging=jar -DlocalRepositoryPath=e:\maven\repMaven -Dfile.encoding=UTF-8