• Java 项目管理工具


    类似于 PHP 中的 Composer,NodeJS 中的 npm,Java 用 Maven 来管理依赖关系。

    实际上,Maven 负责管理 Java 项目开发过程中的几乎所有的东西:

    • 版本控制:Maven 有自己的版本定义和规则
    • 依赖管理:Maven 的基础功能
    • 构建:支持多种应用程序类型,提前定义了对应的构建规则和工具集
    • 输出管理:项目构建的产物可以用 Maven 管理,可以加到指定的用户库中
    • 文档:通过 site 命令发布各种文档信息,包括构建过程的输出报告,javadoc 文档等
    • 项目关系:微服务模式下,一个项目通常由几个模块组成,用 Maven 可以完美应对

    Maven 生命周期

    POM 项目对象模型

    pom.xml 元素

    每个 Maven 项目的根目录下都有一个 pom.xml 文件,包含各种配置信息。Maven 用这个文件来构建项目。其中的可配置项有:

    project dependencies
    plugins
    goals
    build profiles
    project version
    developers
    mailing list

    其中,工程组(groupId)、名称(artifactId)和版本(version)属性是工程的唯一标识。

    根项目配置示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.kikakika.myproject-group</groupId>
        <artifactId>myproject</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>myproject_common</module>
            <module>myproject_base</module>
        </modules>
    
    </project>
    

    子模块的配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>myproject</artifactId>
            <groupId>com.kikakika.myproject-group</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>myproject_common</artifactId>
    
    </project>
    

    继承关系

    每个项目根目录下的 pom.xml 文件可以被子项目或子模块的所继承,从而实现尽可能少的配置。

    Maven 的构建生命周期

    参考:http://wiki.jikexueyuan.com/project/maven/build-life-cycle.html

    使用 Maven 构建项目时,可以指定多个基本的阶段,每个阶段中可以使用 pre 和 post 在特定阶段之前或之后执行目标:

    资源拷贝-》编译-》单元测试-》打包创建 JAR 包或 WAR 包-》集成测试-》安装部署到本地或远程仓库

    Maven 构建工程时,每个阶段都有以下三个标准的生命周期:

    • clean:清理之前的构建信息
    • default(or build):构建项目
    • site:创建新的报告文档、部署站点

    Maven 仓库

    参考:http://www.runoob.com/maven/maven-repositories.html

    通过 Maven 获取依赖时的顺序关系:

    1. 现在本地仓库查找依赖,如果依赖存在则停止查找
    2. 如果本地仓库不存在指定的依赖,则去官方提供的中央仓库查找,如果找到了则停止,如果没找到且没有配置远程仓库,则报错停止,否则去远程仓库查找
    3. 如果在远程仓库找到依赖,则停止,否则报错
  • 相关阅读:
    中文编码问题
    TCP网络参数优化
    I/O的整体介绍
    TCP/IP
    Java序列化技术
    WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)
    λ(lambda)表达式
    HeapByteBuffer和DirectByteBuffer以及回收DirectByteBuffer
    锁的优化和注意事项
    java的NIO和AIO
  • 原文地址:https://www.cnblogs.com/kika/p/10851519.html
Copyright © 2020-2023  润新知