[Maven学习笔记八]Maven常用插件应用

2023-05-16

常用插件及其用法位于:http://maven.apache.org/plugins/

 

1. Jetty server plugin

2. Dependency copy plugin

3. Surefire Test plugin

4. Uber jar plugin

5. Maven Source Plugin

 

 

 

 

 

1. Jetty Plugin


            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.14.v20131031</version>

                <configuration>
                    <scanIntervalSeconds>3</scanIntervalSeconds>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                            <port>8089</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                </configuration>
            </plugin>  

 

功能:为web项目添加一个内置的web服务器,通过这个插件,在plugins目录下会有一个jetty插件项

 

2. Copy Plugin


<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${project.build.directory}/flume.kafka.dependencies
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>  

 

将添加了这个plugin的maven模块,在做install操作时将该模块依赖的jar包全部copy到指定目录下

 

3. Surefire Test Plugin


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>  

 用于运行单元测试,在该模块下会添加一个插件,

 

4. Uber Jar Plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

依赖属性为provided的Dependency不会打到uber jar中

 

4. Maven Source Plugin

 


                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>  

 

 

 

XX. maven-compiler-plugin

对模块按照指定的JDK版本进行编译:

 

 

 

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF8</encoding>
                </configuration>
            </plugin>
 

 

 

 

1.maven-compiler-plugin

参考:http://maven.apache.org/plugins/maven-compiler-plugin/

在多人项目中,比较好的开发实践是项目本身指定JDK的版本,而不是项目组中的每个成员自己来指定。每个人使用的JDK版本不一致,导致代码的编译问题时有发生。

Maven中,可以使用maven-compiler-plugin来指定项目的jdk版本,

在用户管理这个web应用中,有一个聚合和父模块user-project和三个功能模块

user-project

    user-core

    user-service

    user-web

 

我们可以为每个模块添加maven-compiler-plugin的版本控制,但是这样一来,重复代码甚多,如果要更改JDK的版本,每个功能模块的pom.xml都要修改一次,更合理的做法是在父模块user-project中进行定义,功能模块继承它,这类似于依赖的继承,在user-project的pom中添加如下代码:

 


<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <!--指定代码1.6版本兼容->
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>  

 

在user-core,user-service和user-web中,分别做如下定义以继承user-project的maven-compiler-plugin的配置

 


           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>  

 

问题:

做如上定义后,在user-core中使用JDK7的类,如ForkJoinPool,没有编译错,编译能成功,这是为什么??

 

2.maven-rar-plugin

对指定的目录打rar包,参考http://maven.apache.org/plugins/maven-rar-plugin/

 

3. 编译时跳过module下的测试代码的测试

 

 


                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12.4</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>  

 

4.打成jar包时,指定mainClass

 


<plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>sparkStreaming.NetworkWordCount</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
</plugin>  

 

5.将一个Maven模块,连同它依赖的jar打包成Uber Jar

 

 


<!-- Maven shade plug-in that creates uber JARs -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>  

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Maven学习笔记八]Maven常用插件应用 的相关文章

  • OpenCore解决HD4600笔记本电脑hdmi输出

    参考文档 xff1a https blog daliansky net Tutorial Using Hackintool to open the correct pose of the 8th generation core displa
  • 手把手教你安装黑苹果之openCore-0.6.3 EFI制作全过程相关config.plist

    被引用地址 xff1a 手把手教你安装黑苹果之openCore 0 6 3 EFI制作全过程 代码太长了 xff0c 单独开一篇文章保存代码 config plist代码如下 xff1b span class token prolog lt
  • 拯救者14(i7-4720HQ)电池驱动过程记录顺带解决了触控板设置项无法打开的问题

    文章目录 前言电池解决过程ACPI SSDT BAT amlKexts SMCBatteryManager kextconfig plist增加补丁ProperTree效果触控板涉及的文件下载 参考文档 总结 前言 我的型号 xff1a 联
  • 查询 opencore版本信息

    使用 OpenCore Configurator 要注意一点 xff0c 使用的版本要与 OpenCore 版本最好是一致的 所以我们需要知道如何查询当时使用的OpenCore版本信息 方式一 xff1a Hackintool 黑苹果必备工
  • 黑苹果使用小技巧之按键设置

    刚安装完黑苹果的小伙伴 xff0c 可能会遇到类似这样的问题 我怎么复制粘贴没有用啊 xff1f 大家用惯了Windows 的快捷键了 xff0c Ctrl 43 C Ctrl 43 V之类的 到mac 下有点区别 xff0c 基本上是Co
  • QQ群加入代码在线获取

    进入http shang qq com widget group php 页面 xff1a 选择你管理的QQ群 xff0c 必须是群主或这管理才可以 然后把下面的代码复制到你页面上就可以了
  • Android——Keymaster安全检测

    Keymaster 概述 工作以来 xff0c 一直在负责Android系统安全漏洞的跟踪以及修复 最近在处理Android O以上机器的时候遇到了一个坑 当你的升级系统时 xff0c 如果后一个系统中修改了如 xff1a 系统版本 系统安
  • OpenCore版本升级实例-0.6.3升级至0.6.4

    OpenCore的版本升级还是挺快的 那么如何升级呢 xff1f 对于会自己制作EFI的人来说 xff0c 只是升级个OpenCore的版本真是小意思啦 想了解如何制作efi可以查看我之前写的文章 手把手教你安装黑苹果之openCore 0
  • 拯救者14OpenCore0.6.4黑苹果Big Sur 2020年12月11日

    型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 原配置如上 后来又加了根内存 xff0c 机械盘换成了ssd 20
  • OpenCore制作EFI常用下载地址集合

    目录 前言必备OpenCoreHfsPlus efi下载必备KextsVirtualSMCLiluWhateverGreen 常用KextsUSBInjectAllAppleALCVoodooHDAWireless USB OC Big S
  • 联想拯救者14实现快捷键调屏幕亮度

    前言 我的EFI制作完成后 xff0c 快捷键调节声音大小的功能默认就支持 xff0c 但是快捷键调整亮度就不支持了 快捷键调节亮度这样的需求对我来话基本是可有可无 因为鼠标简单点点就可以调节亮度了 Big Sur调节亮度真的方便 xff0
  • Spring boot 与react单页应用部署在一个jar中

    前言 现在的应用开发越来越多的都是前后端分离的项目 比较常见的部署方法是使用nginx 部署 xff0c 日常项目中我也是用的 nginx 最近在开发一个非常小的项目 xff0c 想实现傻瓜式一键部署 43 运行的效果 xff0c 显然使用
  • 笔记本电脑Haswell黑苹果opencore睡眠实战

    前言 我的型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 笔记本电脑Haswell平台的应该是类似的 完整版EFI
  • 拯救者14OpenCore0.6.8黑苹果Big Sur 2021年4月12日

    型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 原配置如上 后来又加了根内存 xff0c 机械盘换成了ssd 特色
  • OpenCore黑苹果之拯救者14(HD4600)开启HDMI音频

    一般外接显示器用不到HDMI音频 xff0c 但是回家外接电视机有点用 我的型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX
  • OpenCore默认安装界面改成中文

    NVRAM Add 7C436110 AB2A 4BBB A880 FE41995C9F82 prev lang kbd lt 0x7a682d48616e733a323532 gt 将默认语言设置为简体中文 留空为英文 Rest NVRA
  • OpenCore安装黑苹果有感

    这里只讨论自己制作EFI的情况 xff0c 直接能从网上找到相同配置的EFI xff0c 安装黑苹果跟普通安装Windows差不多简单 最近终于把EFI折腾的基本完美了 xff0c 有感而发 声卡 xff0c 显卡 xff0c 键鼠 xff
  • 解决重写FragmentTabHost后,屏幕切换时Fragment显示空白的问题

    问题背景 xff1a 公司的App首页架构采用了FragmentTabHost 43 Fragment的结构 之前为了解决每次切换 tab 时 xff0c Fragment不重新加载的问题 xff0c 重写了FragmentTabHost类
  • OpenCore启动项打开Windows无法正常启动

    前言 安装黑苹果的小伙伴应该大部分都是玩双系统的吧 现在我用macOS多一些 xff0c 但是有时还是会简单用一下Windows的 Big Sur安装好后 xff0c 基本不用Windows了 xff0c 今天突然就发现Windows进不去
  • OpenCore机型设置(三码设置)备份转移

    有小伙伴想要把自己的三码保存下来 xff0c 更新EFI以后用自己的三码 方法一 xff1a OOC配置 最简单的图形化操作 xff0c 可以使用 OOC来配置 xff0c 具体的操作方法可以参考 xff1a https blog csdn

随机推荐

  • OpenCore启动项中无Install macOS Big Sur 的解决办法

    现象 最近遇到个问题 xff0c 有小伙伴跟我说 xff0c 用我的最新版本0 6 4的EFI没有Install macOS Big Sur项目 但是用老版的0 6 3的是可以正常安装的 我就很纳闷了 xff0c 自己觉得不可能 故障展示
  • OpenCore电池显示正在充电:1% 建议维修

    现象 电池显示正在充电 xff1a 1 状态栏显示 xff1a 建议维修 本来电池一直是显示正常的 xff0c 电量和充电状态都正常 升级 Big Sur 11 1 20C69 后 某天因为停电 xff0c 使用电池用了1个多小时 xff0
  • OpenCore黑苹果蓝牙能识别但是搜索不到设备

    问题描述 蓝牙正常驱动了 xff0c 在设置中已经有显示了 xff0c 如下 xff1a 但是怎么搜索都无法搜索到设备 其他设备也无法搜索到它 很奇怪啊 xff0c 之前明明是好好的啊 我在想是不是我的kexts版本比较旧导致的啊 最终发现
  • 黑苹果安装完以后的优化

    黑苹果安装完以后的优化 xff0c 可选的 xff0c 不一定对所有人有用 收藏备用 Misc after install Enable HiDPI span class token function bash span c span cl
  • OpenCore关闭开启macOS SIP

    SIP 全称为 System Integrity Protection 即 系统完整性保护 xff0c 是 OS X El Capitan 时开始采用的一项安全技术 xff0c SIP 将一些文件目录和系统应用保护了起来 但这会影响我们一些
  • macOS调整分辨率与HiDPI

    调整分辨率神器RDM 分辨率随便调甚至1080p的屏幕能用 2K甚至 4K的分辨率 xff0c 太神奇了带闪电 图标的就相当于调整HiDPI xff0c 图标和字体显示低分辨率的大小 xff0c 但是很清楚 这个让我惊呆了的神器 RDM主页
  • 禁止OpenCore修改电脑启动顺序

    大家有没有遇到这样的情况 xff0c 自己调整好的电脑启动顺序 xff0c 比如 xff1a 优化从U盘启动之类的操作 xff0c 老是被OpenCore自动修改顺序 因为这个问题我在调试的时候形成了一个习惯 xff0c 每次都要按F12来
  • Appstore下载Big Sur并使用U盘制作黑苹果系统安装盘

    就以目前最新的macOS Big Sur 11 1版本为例 方式一 xff1a 黑果小兵镜像下载 推荐 本人一直用这种方式 xff0c 使用简单方便 xff0c 极力推荐 感谢黑果小兵一直以来给大家提供的便利 黑果小兵的部落阁 xff1a
  • Unity中使用暴风魔镜进行VR游戏开发

    64 VR简介 虚拟现实VR Virtual Reality 和增强现实AR Argument Reality 的概念其实在很多年前就已经出现 xff0c 2015年下半年开始变得火热 xff0c 在各大媒体圈子中频繁出现 xff0c 而今
  • (暂未成功)论在U盘中安装黑苹果(macOS Big Sur)的可行性

    突发奇想 xff0c 如果能把黑苹果安装到U盘里 xff08 或者移动硬盘里 xff09 我是不是带着不同的EFI就可以在不同的电脑上用我的macOS了呢 xff1f 一个移动设备就可以带走我的系统和数据啦 试想一下 xff1a 下班带一个
  • 五笔中三个字的词组打法

    三个字的词组五笔打法是 xff1a 前两个字每个取头一个字根 xff0c 第三个字取头两个字根 xff0c 组成四个字根 xff0c 就可以输出这三个字的词组 参考 xff1a http www 360doc com content 18
  • Android手机运行图形界面的LINUX环境

    刚开始在我废弃在Android手机上运行 spring boot 我已经惊呆了 文章见 xff1a 树莓派 xff1f 云服务器 xff1f 小主机 xff1f 旧手机使用Termux安卓手机中跑Java跑spring boot不香吗 xf
  • 冬天的如何避免静电

    小时候喜欢折腾各种家电 xff0c 也没少挨电过 能活到现在真是庆幸 有一次差点被电死的经历 xff0c 从此以后对电有来自灵魂的恐惧 x1f631 xff0c 现在甚至静电都怕 家乡被电还有一个说法 xff1a 被电打到了 那种感觉真的像
  • Thymeleaf + Spring传参到Javascript

    自从使用前后端分离开发后 xff0c 几乎不使用Thymeleaf了 xff0c 忘记的差不多啦 传参到Javascript的实现还折腾了一小会 xff0c 还是记录一下吧 下面以传参 btData到js的变量里为例 Controller
  • 2021年CentOS7安装Oracle11g全记录

    文章目录 环境信息下载相关准备工作创建用户图形化CentOS7搭建VNC服务安装必备软件并配置防火墙放行VNC端口VNC 连接VNC远程 安装oracle安装中文字体解决中文乱码问题解压安装包修复先决条件检查Swap分区设置 xff08 若
  • Centos7安装和配置VNC服务器 - Xfce篇

    文章目录 VNC简介安装TigerVNC防火墙设置安装图形用户界面 xff08 GUI xff09 Xfce修改配置文件VNC 客户端连接关闭VNC服务删除Xfce参考文档 如果你图形界面使用GNOME xff0c 看这里 xff1a Ce
  • Centos7安装和配置VNC服务器 - openbox篇

    文章目录 VNC简介安装TigerVNC防火墙设置安装图形用户界面 xff08 GUI xff09 openbox配置openbox自启动文件lightdm 修改配置文件VNC 客户端连接关闭VNC服务参考文档 如果你图形界面使用GNOME
  • 黑苹果(OpenCore)踩坑之安装系统正常重启以后无法进入系统#[EB|WL] 0 0 0x01 0x0B 20 0x0E

    文章目录 前言现象思考与排错过程最终解决办法总结 前言 今天帮一个网友安装黑苹果 xff0c 他的机型跟我的完全一样 xff0c 用的是同样的EFI 然而还是遇到问题了 这个问题很不科学 xff0c 从下午5点多一直折腾到现在晚上 11点多
  • 2021年强迫症福音CentOS7零警告安装Oracle11g

    目录 前言环境信息准备工作一键安装和配置VNC图形化相关创建用户开启 VNC服务客户端连接VNC实现远程控制安装oracle安装程序依赖程序包安装中文字体解决中文乱码问题上传并解压安装包 安装oracle实战oracle用户登录vnc远程桌
  • [Maven学习笔记八]Maven常用插件应用

    常用插件及其用法位于 xff1a http maven apache org plugins 1 Jetty server plugin 2 Dependency copy plugin 3 Surefire Test plugin 4 U