maven三个常用的插件使用介绍

目录
  • 背景
  • SpringBoot 打包时排除文件
  • Spring 打包本地依赖 jar
  • 编译时排除指定文件
  • 复制粘贴的原则
  • 总结

背景

maven 常用的三个插件对打包有不同的作用:

maven-jar-plugin:处理 jar 包生成;

spring-boot-maven-plugin:SpringBoot 项目打包;

maven-assembly-plugin:自定义打包结构。

而实际开发过程中这三个插件可能都综合使用,本文类介绍混合使用这些插件时需要注意的事项。

SpringBoot 打包时排除文件

SpringBoot 项目打包时一般会抽出配置文件和静态资源文件到指定目录,然后通过 --spring.config.additional-location=file:xxx 额外指定配置文件。

这样的话,SpringBoot 打包时就需要排除配置文件和静态资源文件,可以用 maven-ja-pluginr 插件来排除:

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>3.2.0</version>
     <configuration>
         <excludes>
             <exclude>*.yml</exclude>
             <exclude>static/**</exclude>
             <exclude>lib/**</exclude>
         </excludes>
     </configuration>
 </plugin>

注意:如果排除文件夹,需要后面两个星星。

Spring 打包本地依赖 jar

如果项目需要依赖本地某目录下的 jar 包,而它又没有在仓库中发布的话,可以通过如下方式添加依赖:

<dependency>
   <groupId>XXXX</groupId>
   <artifactId>XXX</artifactId>
   <version>1.0.0</version>
   <scope>system</scope>
  <systemPath>${project.basedir}/src/main/resources/lib/xxx.jar</systemPath>
</dependency>

值得注意的是,如果项目用了 SpringBoot 打包插件,默认是不会将 system 作用域的 jar 打入 lib 目录的,需要添加 includeSystemScope 配置将第三方 jar 包加入到 lib :

<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
         <includeSystemScope>true</includeSystemScope>
     </configuration>
 </plugin>

编译时排除指定文件

pom.xml 的 resources 配置可以对资源文件进行筛选,常见配置如下:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <excludes>
            <exclude>static/**</exclude>
            <exclude>*.yml</exclude>
        </excludes>
    </resource>
</resources>

该方式会直接影响编译时资源文件的处理过程,即 target 目录下的 classes 目录中就不包括指定文件,从而导致本地运行时缺少配置文件,所以开发期间不建议用这种方式。

复制粘贴的原则

想起以前看到的一段经典话语:

我从互联网上得到的最好的经验之一,就是永远不要复制和粘贴不是自己编写的代码。如果你一定要复制,那就照着它逐字输入,逼着自己思考,这些代码实际上是什么意思。

除了代码需要复制粘贴,平时文档编写时也免不了拿旧文档做模板。

word 文档编写过程中,如果内容是复制、粘贴的,我的经验是,完成后必做几项检查:

标题:检查文档中的标题、系统名称是否更正为目标文档的内容。目录更正:文档页码变化后,必须重新生成目录与之对应。修改内容校对:修改过的内容,需要校对至少三遍。

总结

到此这篇关于maven三个常用的插件使用介绍的文章就介绍到这了,更多相关maven插件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Maven 常用插件的详细整理

    Maven 常用插件的详细整理 1.源码分析 <artifactId>maven-pmd-plugin</artifactId> 2.代码格式检查 <artifactId>maven-checkstyle-plugin</artifactId> 3.代码相似度检查 <groupId>org.codehaus.mojo</groupId> <artifactId>simian-maven-plugin</artifac

  • Spring Boot Maven插件使用详解

    Spring Boot Maven插件提供了使用Spring Boot应用程序步骤如下: 重新打包:创建一个可自动执行的jar或war文件.它可以替换常规工件,或者可以使用单独的分类器附加到构建生命周期. 运行:运行您的Spring引导应用程序与几个选项传递参数. 启动和停止:将Spring Boot应用程序集成到集成测试阶段,以便应用程序在其之前启动. 构建信息:生成可由致动器使用的构建信息. 重新打包一个应用程序 为了重新打包应用程序,只需要在pom.xml中添加对插件的引用,具体配置如下:

  • Java Maven高级之插件开发详解

    目录 前言 创建 自定义插件 总结 前言 终于来到了Maven的插件开发,其实Maven的插件并没有想象的那么难,刚开始讲Maven基础的时候就演示了一下JDK是如何打包的,Maven打包只是在JDK打包上封装了一层而已,Maven也支持自定义插件开发 创建 我们先使用quickstart原型创建出一个Maven项目,在pom.xml里面引入一下依赖: <dependency> <groupId>org.apache.maven</groupId> <artifa

  • Maven插件的安装及使用

    maven插件主要是为maven中生命周期中的阶段服务的,maven中只是定义了3套生命周期,以及每套生命周期中有哪些阶段,具体每个阶段中执行什么操作,完全是交给插件去干的. maven中的插件就相当于一些工具,比如编译代码的工具,运行测试用例的工具,打包代码的工具,将代码上传到本地仓库的工具,将代码部署到远程仓库的工具等等,这些都是maven中的插件. 插件可以通过mvn命令的方式调用直接运行,或者将插件和maven生命周期的阶段进行绑定,然后通过mvn 阶段的方式执行阶段的时候,会自动执行和

  • maven三个常用的插件使用介绍

    目录 背景 SpringBoot 打包时排除文件 Spring 打包本地依赖 jar 编译时排除指定文件 复制粘贴的原则 总结 背景 maven 常用的三个插件对打包有不同的作用: maven-jar-plugin:处理 jar 包生成: spring-boot-maven-plugin:SpringBoot 项目打包: maven-assembly-plugin:自定义打包结构. 而实际开发过程中这三个插件可能都综合使用,本文类介绍混合使用这些插件时需要注意的事项. SpringBoot 打包

  • Mybatis常用分页插件实现快速分页处理技巧

    在未分享整个查询分页的执行代码之前,先了解一下执行流程. 1.总体上是利用mybatis的插件拦截器,在sql执行之前拦截,为查询语句加上limit X X 2.用一个Page对象,贯穿整个执行流程,这个Page对象需要用Java编写前端分页组件 3.用一套比较完整的三层entity,dao,service支持这个分页架构 4.这个分页用到的一些辅助类 注:分享的内容较多,这边的话我就不把需要的jar一一列举,大家使用这个分页功能的时候缺少什么就去晚上找什么jar包即可,尽可能用maven包导入

  • Spring Boot在开发过程中常用IDEA插件

    目录 一.Codota 二.AutofillingJavacallarguments 三.GsonFormat 四.RainbowBrackets 五.MavenHelper 六.KeypromoterX 七.换个心水的背景图 本篇为大家介绍一些在开发过程中,经常可以使用到的一些IntelliJ IDEA插件和提高工作效率的方法,关于如何安装插件可以参考本专栏前面两小节的内容. 一.Codota 极其强大的代码自动补全 当我们第一次使用某个类,对该类的某个函数不够熟悉时,可以通过该插件搜索相关用

  • 基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用

    在上篇基于BootStrap Metronic开发框架经验小结[二]列表分页处理和插件JSTree的使用,介绍了数据的分页处理,使用了Bootstrap Paginator插件,另外对树形列表,采用了JSTree插件,本篇继续介绍在编辑页面中常用到的控件Select2,这个控件可以更加丰富传统的Select下拉列表控件,提供更多的功能和更好的用户体验. 1.Select2控件介绍 这个插件是基于Select的扩展插件,能够提供更加丰富的功能和用户体验,它的github官网地址为:https://

  • Angular浏览器插件Batarang介绍及使用

    Angular浏览器插件Batarang介绍 对于Angular新手来说,刚接手Angular的时候都会比较痛苦.确实,相对于JQuery.Backbone等,Angular门槛确实相对较高,而且比较难以调试.今天给大家带来一个Angular Chrome 插件Batarang的介绍,运用好改插件,会帮助加深对Angular的理解. 准备工作 安装Batarang: 方法一:在Chrome应用商店中查找Batarang,并安装. 方法二:在网上查找Batarang的安装包,直接在Chrome浏览

  • 推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)

    三款日期选择插件推荐给大家: 1.My97DatePicker 纯原生JS,专注于PC端,支持IE6+:页面上只需要引入WdatePicker.js文件,但是My97DatePicker整个目录是一个整体,最好不要破坏里面的目录结构,否则就会报错找不到指定文件. (1)直接在html文件中写入 <input id="ipt" type="text" onclick="WdatePicker()" /> 注意:由于此插件是原生JS写的,

  • python lambda函数及三个常用的高阶函数

    进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量.但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数.该函数就是Python中的Lambda函数,下面就来为大家解析python-lambda函数,三个常用的高阶函数. 为什么要使用Python Lambda函数? 匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的.因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一

  • maven实现docker自动化部署插件的使用

    构建开发项目 首先打开我们的IDEA构建一个我们的开发项目,配置如下: 接着打开我们的pom.xml修改build的配置,修改以后的代码如下: <build> <finalName>docker-automation-demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring

  • Maven环境安装配置和新建项目介绍

    目录 1 Maven是什么? 2,环境搭建 2.1 安装JDK 2.2 下载并安装maven 2.3 配置环境变量 2.4 验证maven是否已经安装 2.5 maven的本地仓库的配置 3 eclipse中的maven插件配置 3.1 下载安装maven插件 3.2 配置环境 4 创建maven项目 5 maven web项目的结构 总结: 1 Maven是什么? Apache Maven 是一种用作软件项目管理和理解工具.它基于项目对象模型(POM)的概念, 可以管理一个项目的构建.报告以及

  • python中Pytest常用的插件

    目录 前言 1. 用例依赖 2. 失败重跑 3. 指定用例执行顺序 4. 分布式运行 5. 多重断言 6. 小结 前言 除了框架本身提供的功能外,Pytest还支持上百种第三方插件,良好的扩展性可以更好的满足大家在用例设计时的不同需求.本文将为大家详细介绍下面5项常用的插件. 1. 用例依赖 编写用例的时候,我们会注意用例之间的独立性,但部分用例之间确实存在关联,无法做到彻底独立,那么我们就可以通过使用插件pytest-dependency设置用例之间的依赖关系.当用例A依赖于用例B时,若用例B

随机推荐