maven 笔记1-基础

基础

maven学习
maven学习笔记(超详细总结)
官网介绍

作用
  1. 简单说,maven 抽象了项目构建过程,解决了项目引入依赖包的问题(有些包还是下载不到)。

  2. 可以通过profile的配置来构不同环境下的项目输出。

  3. 可以自定义maven的插件来处理项目构建过程中的特殊处理。比如创建一个文件夹,发起一个请求到远程,做下数据替换之类的处理。

  4. properties 作为profile的公共配置提供给项目中properties文件使用。当然springcloud 配置服务器 - -。

  5. 项目输出为 war 的时候,项目资源进行合并。如cas-overdelay-template

简单的pom
<?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>      
<groupId>com.hsnn.products</groupId>        <artifactId>product-platform</artifactId>        <version>1.2</version>
</parent> 
<modelVersion>4.0.0</modelVersion>    <packaging>war</packaging>  
<artifactId>mh</artifactId> 
<version>1.0.0</version>
<dependencies>  
        <dependency>                                                                        <groupId>com.hsnn.plugins</groupId>                                     <artifactId>plugin-basic</artifactId>    
    </dependency>     
    <dependency>            <groupId>com.hsnn.plugins</groupId>            <artifactId>plugin-ftlels</artifactId>        
    </dependency>        
    <dependency>            <groupId>com.hsnn.plugins</groupId>            <artifactId>plugin-util</artifactId>      
    </dependency>      
    <dependency>            <groupId>com.hsnn.framework</groupId>            <artifactId>plugin-medicalstage-util-support</artifactId>            <version>1.2-Release</version>       
    </dependency>      
    <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>     
    </dependency>       
    <!--        自定义扩展的包-->        <!-- 为了支持jsp能够直接访问 -->        
    <dependency>            <groupId>org.apache.tomcat.embed</groupId>            <artifactId>tomcat-embed-jasper</artifactId>        </dependency> 
</dependencies>  
    <build>       
    <finalName>mh</finalName>  
    </build>
</project>


parent 继承说明
  1. 可继承的pom元素。主要用到已经标记
    groupId:项目组ID,项目坐标的核心元素
    version: 项目版本, 项目坐标的核心元素

    description: 项目的描述信息,一般都重写。
    organization: 项目的组织信息
    inceptionYear: 项目的创始年份
    url: 项目的URL地址。
    developers: 项目开发者信息
    contributors: 项目的贡献者信息
    distributionManagement: 项目的部署配置
    issueManagement: 项目的缺陷跟踪系统信息
    ciManagement: 项目的持续集成系统信息
    scm: 项目的版本控制系统信息
    mailingLists: 项目的邮件列表信息
    properties: 自定义的maven属性
    dependencies: 项目的依赖配置
    dependencyManagement: 项目的依赖管理配置
    repositories: 项目的仓库配置
    build: 包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等

    reporting: 包括项目的报告输出目录配置、报告插件配置等
resource 元素说明

如果项目构建是按标准来配置,默认情况下不需要进行额外配置。
那么什么时候需要进行额外配置呢?

  1. 不同构建模式profile下,切换不同的文件。比如spring-dev.properties在dev下使用,spring-prod.properties在prod下使用。
    在这里插入图片描述

  2. 有部分配置文件在java目录下,那么需要加入到resource 里面。在这里插入图片描述

finalName

项目构建最后打包出来的名称。
在这里插入图片描述

maven的版本定义

通常下载软件的时候会看到如下 :1.3.2-beta-2
约定 < 主版本 >.< 次版本 >.< 增量版本 >-< 里程碑版本 >
1 、表示该版本的主版本号;
3 、表示该版本的次版本号;
2 、表示该版本的增量版本号;
beta-2、 最后的 beta-2 表示该增量的某一个里程碑。(SNAPSHOT快照版本,beta,rc,release稳定版)

主版本:表示项目的重大架构变更。例如: Maven2 和 Maven1 相去甚远; Struts1 和 Struts2 采用了 不同的架构。

次版本:表示较大范围的功能增加和变化,及 Bug 修复。例如 Nexus 1.5 较 1.4 添加了 LDAP 的支持,并且修复了很多 Bug, 但是从总体架构来说,没有什么变化。

增量版本:顾名思义,这往往指某一个版本的里程碑。例如, Maven3 已经发布了很多里程碑版本,如:3.0-alpha-13.0-alpha-23.0-bata-1 等。这里的版本与正式版本 3.0 相比,往往表示不是非常稳定,还需要很多测试。我们用spring 或者开源框架 都是会选择 release稳定版本,这样版本通常在线上运行了一段时间,很稳定了。所以大家如果在引用别人SNAPSHOT版本的时候 需要注意 可能存在各种各样的问题。

知道这个主要原因是我们去maven 仓库去找需要的jar包时候,引入的版本的选择。当前选择下载数是最主要的指标。在差不多下载数的时选择高版本的稳定版。

maven 日常使用

在工作的时候,没有将 maven 加入到全局变量中,就直接使用的 idea 的默认的 maven 工具,连配置也是一样。主要想法就是只要约束好idea的版本,就可以约会到maven的配置,不需要再去关注个人电脑上的下载的maven版本,同理maven的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值