本文为博主原创,未经允许不得转载

 目录:

  1. maven 依赖属性:groupId、artifactId、version

  2.插件执行: execution,id ,phase,goals,configuration

  3.聚合: <modules>

  4.可选依赖:<optional>

  5.排除依赖:<exclusions>

  6.依赖范围 : <scope>, <systemPath>

  7.依赖管理:<dependencyManagement> 

  8.项目属性: <properties>

  9.maven 依赖引用属性:type

  10.maven 默认的属性

1. maven 依赖属性:groupId、artifactId、version

  插件与普通jar 包一样包含 一组件坐标定位属性即:

  groupId、artifactId、version,当使用该插件时会从本地仓库中搜索,如果没有即从远程仓库下载

<!-- 唯一定位到dependency 插件 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>

2.插件执行: execution,id ,phase,goals,configuration

    execution 配置包含一组指示插件如何执行的属性:

    id : 执行器命名

    phase:在什么阶段执行?

    goals:执行一组什么目标或功能?

    configuration:执行目标所需的配置文件?

    # 将插件依赖拷贝到指定目录

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
          <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>

3.聚合: <modules>

    指将多个模块整合在一起,统一构建,避免一个一个的构建。聚合需要个父工程,然后使用 <modules> 进行配置其中对应的是子工程的相对路径

<modules>
    <module>tuling-client</module>
    <module>tuling-server</module>
</modules>

4.可选依赖:<optional>

    可选依赖表示这个依赖不是必须的。通过在 <dependency> 添  <optional>true</optional> 表示,默认是不可选的。可选依赖不会被传递。

5.排除依赖:<exclusions>

    即排除指定的间接依赖。通过配置 <exclusions> 配置排除指定组件

<!-- 排除指定项目 -->
<exclusions>
    <exclusion>
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
    </exclusion>
</exclusions>

6.依赖范围 : <scope>, <systemPath>

    像junit 这个组件 我们只有在运行测试用例的时候去要用到,这就没有必要在打包的时候把junit.jar 包过构建进去,可以通过Mave 的依赖范围配置<scope>来达到这种目的。maven 总共支持以下四种依赖范围:

    compile(默认): 编译范围,编译和打包都会依赖。

    provided:提供范围,编译时依赖,但不会打包进去。如:servlet-api.jar

    runtime:运行时范围,打包时依赖,编译不会。如:mysql-connector-java.jar

    test:测试范围,编译运行测试用例依赖,不会打包进去。如:junit.jar

    system:表示由系统中CLASSPATH指定。编译时依赖,不会打包进去。配合<systemPath> 一起使用。

    system 除了可以用于引入系统classpath 中包,也可以用于引入系统非maven  收录的第三方Jar,做法是将第三方Jar放置在 项目的 lib 目录下,然后配置 相对路径,但因system 不会打包进去所以需要配合 maven-dependency-plugin 插件配合使用。   

<!-- system 的通常使用方式-->
<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>${java.version}</version>
    <scope>system</scope>
    <optional>true</optional>
    <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency> <!-- system 另外使用方式 ,将工程内的jar直接引入 -->
<dependency>
    <groupId>jsr</groupId>
    <artifactId>jsr</artifactId>
    <version>3.5</version>
    <scope>system</scope>
    <optional>true</optional>
    <systemPath>${basedir}/lib/jsr305.jar</systemPath>
</dependency>

<!-- 通过插件 将system 的jar 打包进去。 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<includeScope>system</includeScope>
<excludeGroupIds>com.sun</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>

7.依赖管理:<dependencyManagement> 

    通过继承的特性,子工程是可以间接依赖父工程的依赖,但多个子工程依赖有时并不一至,这时就可以在父工程中加入 <dependencyManagement> 声明该功程需要的JAR包,然后在子工程中引入。子工程中引入时可省略 <version> 的标签版本

    通过 <dependencyManagement> 可实现在在外面的父pom 中统一管理所有依赖的版本。

<!-- 父工程中声明 junit 4.12 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 子工程中引入 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>

8.项目属性<properties>:

    通过 <properties> 配置 属性参数,可以简化配置。

    示例:

   <properties>
<java.version>1.8</java.version>
<com.alibaba.version>1.8</com.alibaba.version>
</properties>

  <!-- s{}引用 propertys 中定义的属性 -->  
    <dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${com.alibaba.version}</version>
</dependency>
</dependencies>

9.maven 依赖引用属性:type

  maven 引入依赖,默认使用的 type 属性为 jar 类型。当需要引用很多依赖并进行统一管理时,则需要在 dependencyManagement 中声明引用的依赖版本。maven 提供了 引用类型type 为 pom 类型的依赖,这种依赖可以则可以直接使用该依赖中声明的所有jar的依赖管理。如spring-boot,spring-cloud都提供了这样的依赖支持:

  示例:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  子pom 使用父pom 依赖,则可以直接使用,因为其在上面的pom 内部已经声明了引用的版本等信息:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

10.maven 默认的属性

${basedir}               项目根目录
${version}              表示项目版本;
${project.basedir}          同${basedir};
${project.version}          表示项目版本,与${version}相同;
${project.build.directory}       构建目录,缺省为target
${project.build.sourceEncoding}    表示主源码的编码格式;
${project.build.sourceDirectory}    表示主源码路径;
${project.build.finalName}        表示输出文件名称;
${project.build.outputDirectory}     构建过程输出目录,缺省为target/classes

  idea 中配置maven编译打包忽略Test扫描的命令 : mvn clean install -DskipTests -f pom.xml

maven总结二: 常用标签及属性的更多相关文章

  1. HTML初学者常用标签及属性

    1.HTML5头部结构   [DOCTYPE html] 声明文档类型为HTML5文件. 文档声明在HTML5文档必不可少,且必须放在文档的第一行.   [meta标签] 1-charset属性:单独 ...

  2. HTML之常用标签及属性

    标签 标签分类 标签名 英文 英文含义 标签类型 备注 HTML页面结构 < html> HyperText Markup Language 超文本标记语言 < head> h ...

  3. HTML常用标签及属性

    标签格式 格式: 双边:<标签名 属性1="值1" 属性2='值2' 属性3=值3>内容</标签名> 单边:<标签名 属性1="值1&quo ...

  4. html常用标签及属性,常用英语单词

    目录 html常用标签 html常用标签属性 前端常用英语单词表(未完待续) 欢迎评论点赞交流,转发请添加原博客连接谢谢! Ctrl键+F 可以查找你想要的内容哦! html常用标签 htmi结构 & ...

  5. Web前端——Html常用标签及属性

    html 常用的标题等标签就不记录了,只记录一下比较少见的标签以及属性 表格 table td 单元格 tr 表的行 th 表头 td或th可以下面的两个属性达到跨行或跨列 表格跨行 rowspan ...

  6. css常用标签及属性

    css样式表常用的形式有三种,一.行内样式表.二.内部样式表.三.外部样式表 一. <p style="color:red;">nice to meet you< ...

  7. html中一些常用标签及属性

    html中标签分为块级标签和行级标签 块级标签常用的有 <div> <p> <h1><hr><pre><table><ul ...

  8. HTML常用标签及其属性

    基本 <html>…</html> 定义 HTML 文档 <head>…</head> 文档的信息 <meta> HTML 文档的元信息 & ...

  9. 4.HTML 常用标签及属性

    1. 链接 标签: <a></a> 属性: href:链接地址 target:打开方式 _blank:新标签页打开 _self:当前页面打开(默认) title:链接提示 2. ...

  10. HTML常用标签和属性大全

    html标签< <marquee>...</marquee>普通卷动 <marquee behavior=slide>...</marquee>滑 ...

随机推荐

  1. NetSuite 开发日记 —— 非空判断

    使用N/util模块进行非空判断,N/util模块说明:https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_45 ...

  2. NLP复习之向量语义

    向量语义 词汇语义 语义概念(sense or concept)是单词含义(word sense)的组成部分,词原型可以是多义的. 同义词是指:在某些或者全部的上下文中,单词之间有相同或近似含义 可能 ...

  3. 云图说|AI开发难!难!难!端云协同多模态AI开发套件你需要了解一下

    摘要:Huawei HiLens Kit是一款端云协同多模态AI开发套件,支持图像.视频.语音等多种数据分析与推理计算,可广泛用于智能监控.智能家庭.机器人.无人机.智慧工业.智慧门店等分析场景. 在 ...

  4. 40个问题让你快速掌握Java多线程的精髓

    摘要:多线程可以理解为在同一个程序中能够同时运行多个不同的线程来执行不同的任务,这些线程可以同时利用CPU的多个核心运行. 多线程可以理解为在同一个程序中能够同时运行多个不同的线程来执行不同的任务,这 ...

  5. 克魔助手:方便查看iPhone应用实时日志和奔溃日志工具

    ​ 克魔助手:方便查看iPhone应用实时日志和奔溃日志工具 查看ios app运行日志 摘要 本文介绍了一款名为克魔助手的iOS应用日志查看工具,该工具可以方便地查看iPhone设备上应用和系统运行 ...

  6. 火山引擎DataTester:AB测试技术揭秘及应用分享

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   在全球软件工程创新峰会上,火山引擎DataTester 研发负责人韩云飞围绕"AB测试:让数据与业务 ...

  7. 火山引擎VeDI助力零售品牌私域运营 实现与会员高效“沟通”

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 小程序正在成为零售品牌与会员高效沟通的第二阵地. 过去,零售品牌多依赖电商平台与会员保持互动联系.消费者通过关注[ ...

  8. Solon2 接口开发: 实战 Gateway 模式效果

    1.效果预览 网关 @Mapping("/api/v3/app/**") @Component public class ApiGateway3x extends UapiGate ...

  9. PPT 产品发布会PPT应该怎么样改

    PPT 毕业答辩PPT应该怎么样改 大图背景打底 刺眼 收集素材

  10. PPT 动画入门

    元素动画 进入动画 元素从无到有的过程 退出动画 元素从有到无的过程 退出动画和进入动画,一对一 强调动画 在元素上变化的过程(如放大) 动作路径 3D动画 三维动画 低版本不支持 组合动画 切换动画 ...