美文网首页
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