美文网首页
Maven使用笔记(三)

Maven使用笔记(三)

作者: YourLuck | 来源:发表于2019-03-05 09:59 被阅读0次

    pom(project object model)项目对象模型

    <!-- 依赖管理 -->
    <dependency>
        <!-- 通过坐标管理jar包 -->
        <!-- 项目所在组 -->
        <groupId>junit</groupId>
        <!-- 当前项目在组中的唯一标识 -->
        <artifactId>junit</artifactId>
        <!--
            版本号,
            SNAPSHOT版本,指此项目还在开发中,不稳定
            LATEST版本,指最新发布,这个发布可能是发布版也可能是SNAPSHOT版具体看哪个在最后。
            RELEASE版本,指仓库中最后的一个非快照版本
        -->
        <version>4.11</version>
        <!-- 依赖的范围 -->
        <scope>test</scope>
    </dependency>
    
    • maven通过gav坐标(groupID artifactID version)来确定一个jar包,在本地仓库中可以看到jar包在对应的 groupID/artifactID/version/ 文件夹下

    依赖范围

    1. compile : 编译,测试,运行都有效,默认的选择
    2. test : 测试有效,例如junit
    3. provided : 编译,测试有效,例如 servlet ,运行时容器会提供实现
    4. runtime : 运行和测试有效,例如 jdbc,编译时只需相应的接口,测试和运行时才需要具体的实现
    5. system : 编译,测试有效。使用此范围的依赖必须通过systemPath元素显式的指定依赖文件,因而此类依赖是不通过Maven仓库解析的,一般适合于本机测试环境下,依赖本地起的服务。

    通过父模块进行jar包管理

    父模块的pom文件

    <!-- 版本号管理 -->
    <properties>
        <junit.version>4.12</junit.version>
        <spring.version>RELEASE</spring.version>
    </properties>
    <!-- 依赖声明 -->
    <!-- dependencyManagement
        只是声明依赖,并不实现引入,子项目需要显式的声明需要用的依赖(groupID和artifactID)
        未指定其他值时version和scope都读取自父模块的值
        如果子项目中指定了其它值,那么会优先使用子项目中指定的值。
    -->
    <dependencyManagement>
        <dependencies>
            <!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    子项目的pom文件

    <!-- 依赖管理 -->
    <dependencies>
        <!-- 按需要添加依赖,版本被父模块控制,可以自行声明,优先级比父模块更高 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
    

    相关文章

      网友评论

          本文标题:Maven使用笔记(三)

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