美文网首页
maven依赖的使用-04

maven依赖的使用-04

作者: 誓俭草 | 来源:发表于2019-08-28 22:29 被阅读0次

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.png

maven依赖的排除

​ 如果我们在当前工程中引入了一个依赖是 A,而 A 又依赖了 B,那么 Maven 会自动将 A 依赖的 B 引入当
前工程,但是个别情况下 B 有可能是一个不稳定版,或对当前工程有不良影响。这时我们可以在引入 A 的时
候将 B 排除。
[1]情景举例

1566999075485.png

[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.png

maven依赖的原则

  • 作用:解决模块工程间jar包冲突问题

  • 情景1:验证路径最短优先原则

1566999411341.png
  • 情景2:验证路径相同时,先声明者优先
1566999515677.png

先声明指的时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>

相关文章

网友评论

      本文标题:maven依赖的使用-04

      本文链接:https://www.haomeiwen.com/subject/xbuvectx.html