maven相关知识点-04
通过maven在eclipces中创建项目
①设置通过Maven创建的工程的JDK版本——一劳永逸
[1]打开settings.xml文件
[2]找到profiles标签
[3]加入如下配置
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
②工程坐标(maven的坐标)
groupId:com.atguigu.maven
ArtifactId:MakeFriends
Package:com.atguigu.maven
③在Eclipse环境下执行Maven命令:右击pom.xml选择run as 中的命令执行即可
④当创建web工程时,会发现刚创建的项目中创建的jsp页面会报错。此时看报错信息会发现时找不到servlet-api的jar包导致的。解决办法:
ServletAPI依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
一定时provided范围的,因为在部署时tomcat在自带此jar,不然会产生冲突。
maven依赖的传递性
依赖的传递性
A 依赖 B,B 依赖 C,A 能否使用 C 呢?那要看 B 依赖 C 的范围是不是 compile,如果是则可用,否则不
可用。
如下展示:
1566998808481.pngmaven依赖的排除
如果我们在当前工程中引入了一个依赖是 A,而 A 又依赖了 B,那么 Maven 会自动将 A 依赖的 B 引入当
前工程,但是个别情况下 B 有可能是一个不稳定版,或对当前工程有不良影响。这时我们可以在引入 A 的时
候将 B 排除。
[1]情景举例
[2]配置方式
<dependency>
<groupId>com.atguigu.maven</groupId>
<artifactId>HelloFriend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
[3]排除后的效果
1566999188019.pngmaven依赖的原则
-
作用:解决模块工程间jar包冲突问题
-
情景1:验证路径最短优先原则
- 情景2:验证路径相同时,先声明者优先
先声明指的时dependency中的配置先后顺序
maven统一版本控制
统一管理所依赖 jar 包的版本
对同一个框架的一组 jar 包最好使用相同的版本。为了方便升级框架,可以将 jar 包的版本信息统一提
取出来
[1]统一声明版本号
<properties>
<atguigu.spring.version>4.1.1.RELEASE</atguigu.spring.version>
</properties>
其中 atguigu.spring.version 部分是自定义标签
[2]引用前面声明的版本号
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version> ${atguigu.spring.version}</version>
</dependency>
……
</dependencies>
网友评论