maven 包管理平台-07-plugins 常见插件介绍

拓展阅读

maven 包管理平台-01-maven 入门介绍 + Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格

maven 包管理平台-02-windows 安装配置 + mac 安装配置

maven 包管理平台-03-maven project maven 项目的创建入门

maven 包管理平台-04-maven archetype 项目原型

maven 包管理平台-05-multi module 多模块

maven 包管理平台-06-常用技巧 实时更新快照/乱码问题/下载很慢/包依赖解决包冲突/如何导入本地 jar

maven 包管理平台-07-plugins 常见插件介绍

maven 包管理平台-08-nexus 自己搭建 maven 仓库

maven 插件

Maven 在其核心是一个插件执行框架;所有工作都由插件完成。

寻找要执行的特定目标吗?此页面列出了核心插件和其他插件。

有构建和报告插件:

  • 构建(Build) 插件将在构建过程中执行,它们应该在 POM 中的 <build/> 元素中进行配置。

  • 报告(Reporting) 插件将在站点生成期间执行,它们应该在 POM 中的 <reporting/> 元素中进行配置。因为报告插件的结果是生成站点的一部分,所以报告插件应该同时进行国际化和本地化。您可以关于插件本地化的信息以及您可以如何帮助的内容。

Maven 插件

核心插件

这些插件对应于默认的核心阶段(即 clean,compile 等)。

它们也可能有多个目标。

compiler

编译 Java 源代码。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>1.8</source><target>1.8</target></configuration>
</plugin>

surefire

在隔离的类加载器中运行 JUnit 单元测试。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${maven-surefire-plugin.version}</version><configuration><skipTests>true</skipTests><testFailureIgnore>true</testFailureIgnore></configuration>
</plugin>

报告插件

生成报告的插件,在 POM 中配置为报告,并在站点生成生命周期下运行。

javadoc

为项目生成 Javadoc 文档。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><configuration><!--maven 多模块--><aggregate>true</aggregate><!--路径--><reportOutputDirectory>../doc</reportOutputDirectory><!--目录--><destDir>myapidocs</destDir><!--IOS ERROR: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.--><javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable><!--自定义标签--><tags><tag><!--name为你Java代码中的注解的名字--><name>Description</name><!--事实上这个就是说你要把哪些(方法、字段、类)上面的注解放到JavaDoc中--><placement>a</placement><!--head。假设不写这个,用的就是name,假设写了,那么显示效果例如以下:--><head>用途</head></tag></tags></configuration></plugin>

其他

许多其他项目提供了它们自己的 Maven 插件。

tomcat7

运行 Apache Tomcat 容器以进行快速 Web 应用程序开发。

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>${plugin.tomcat.version}</version><configuration><port>8081</port><path>/</path><uriEncoding>${project.build.sourceEncoding}</uriEncoding></configuration></plugin></plugins>
</build>

Versions

versions-plugin zh_CN

mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
  • commit
mvn versions:commit
  • revert
mvn versions:revert

正确修改方法:

(1) 修改父类

mvn versions:set -DgroupId=com.framework -DartifactId=framework* -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT

(2) 修改子类

mvn -N versions:update-child-modules

Auto-Config

Auto-Config

简单案例

Import in maven

<?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/maven-v4_0_0.xsd"><properties><!-- 定义autoconfig的版本,建议将此行写在parent pom.xml中。 --><autoconfig-plugin-version>1.2</autoconfig-plugin-version></properties><build><plugins><plugin><groupId>com.alibaba.citrus.tool</groupId><artifactId>autoconfig-maven-plugin</artifactId><version>${autoconfig-plugin-version}</version><configuration><!-- 要进行AutoConfig的目标文件,默认为${project.artifact.file}。<dest>${project.artifact.file}</dest>--><!-- 配置后,是否展开目标文件,默认为false,不展开。<exploding>true</exploding>--><!-- 展开到指定目录,默认为${project.build.directory}/${project.build.finalName}。<explodedDirectory>${project.build.directory}/${project.build.finalName}</explodedDirectory>--></configuration><executions><execution><phase>package</phase><goals><goal>autoconfig</goal></goals></execution></executions></plugin></plugins></build>
</project>

跳过执行

$   mvn install –Dautoconfig.skip
  • 想使用配置文件

(1) 直接将生成的配置文件 antx.properties 视为配置文件使用。放在本地。 (2) 打成war包之后可以自动属性替换掉。

1、 maven war struct:

war-project(源目录结构)               -> war-project.war(目标目录结构)│  pom.xml│└─src└─main├─java├─resources                    -> /WEB-INF/classes│      file1.xml                      file1.xml│      file2.xml                      file2.xml│└─webapp                       -> /├─META-INF                 -> /META-INF│  └─autoconf              -> /META-INF/autoconf│        auto-config.xml          auto-config.xml│└─WEB-INF                  -> /WEB-INFweb.xml                     web.xmlfile3.xml                   file3.xml
  • /META-INF/autoconf 目录用来存放AutoConfig的描述文件,以及可选的模板文件。

  • auto-config.xml 是用来指导AutoConfig行为的关键描述文件。

2、 maven jar struct

jar-project(源目录结构)               -> jar-project.jar(目标目录结构)│  pom.xml│└─src└─main├─java└─resources                    -> /│  file1.xml                      file1.xml│  file2.xml                      file2.xml│└─META-INF                 -> /META-INF└─autoconf             -> /META-INF/autoconfauto-config.xml         auto-config.xml

3、Common directory

directory│  file1.xml│  file2.xml│└─confauto-config.xml

auto-config

<?xml version="1.0" encoding="UTF-8"?>
<config><group><property name="petstore.work"description="应用程序的工作目录" /><property name="petstore.loggingRoot"defaultValue="${petstore.work}/logs"description="日志文件目录" /><property name="petstore.upload"defaultValue="${petstore.work}/upload"description="上传文件的目录" /><property name="petstore.loggingLevel"defaultValue="warn"description="日志文件级别"><validator name="choice"choice="trace, debug, info, warn, error" /></property></group><script><generate template="WEB-INF/web.xml" /><generate template="WEB-INF/common/resources.xml" /></script>
</config>

完整的properties

<propertyname="..."[defaultValue="..."][description="..."][required="true|false"]
><validator name="..." /><validator name="..." />...
</property>

生成配置文件的指令

<generatetemplate="..."[destfile="..."][charset="..."][outputCharset="..."]
>

auto-config 命令

$ autoconfig
Detected system charset encoding: UTF-8
If your can't read the following text, specify correct one like this:autoconfig -c mycharset使用方法:autoconfig [可选参数] [目录名|包文件名]可选参数:-c,--charset                输入/输出编码字符集-d,--include-descriptors包含哪些配置描述文件,例如:conf/auto-config.xml,可使用*、**、?通配符,如有多项,用逗号分隔-D,--exclude-descriptors    排除哪些配置描述文件,可使用*、**、?通配符,如有多项,用逗号分隔-g,--gui                    图形用户界面(交互模式)-h,--help                   显示帮助信息-i,--interactive            交互模式:auto|on|off,默认为auto,无参数表示on-I,--non-interactive        非交互模式,相当于--interactive=off-n,--shared-props-name      共享的属性文件的名称-o,--output                 输出文件名或目录名-P,--exclude-packages       排除哪些打包文件,可使用*、**、?通配符,如有多项,用逗号分隔-p,--include-packages包含哪些打包文件,例如:target/*.war,可使用*、**、?通配符,如有多项,用逗号分隔-s,--shared-props           共享的属性文件URL列表,以逗号分隔-T,--type                   文件类型,例如:war, jar, ear等-t,--text                   文本用户界面(交互模式)-u,--userprop               用户属性文件-v,--verbose                显示更多信息

可执行 jar

  • xml 引入
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.5.5</version><configuration><archive><manifest><mainClass>com.xxg.Main</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions>
</plugin>
  • 命令行执行
$   mvn package

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习记录】PointLIO代码 update_iterated_dyn_share_modified 中函数指针的用法

最近在看PointLio的代码&#xff0c;有一部分看了半天没看懂&#xff0c;学习整理如下。 1、PointLio在迭代卡尔曼部分的代码 在esekfom.hpp中&#xff0c;有部分代码如下&#xff1a; void init_dyn_share_modified(processModel f_in, processMatrix1 f_x_in, measurement…

上班族真香副业:工资4500,靠steam游戏搬砖项目月入过w

steam游戏搬砖项目已经存在好多年了&#xff0c;这个项目比较冷门且能持续稳定盈利&#xff0c;是一个非常不错的项目。即使你没玩过steam游戏也没关系&#xff0c;这个steam游戏搬砖项目既不需要你会玩游戏&#xff0c;也不需要你懂英语。 steam游戏搬砖项目的盈利点在汇率差和…

【postgresql 基础入门】UPSERT语句,INSERT违反约束条件时可以转变为UPDATE语句,UPDATE与INSERT的合体

upsert插入更新 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 系列文章 入门准…

leetcode347.前K个高频元素

先使用map&#xff0c;统计每个字符出现的频率&#xff0c;然后使用优先队列根据字符出现频率存储字符&#xff0c;然后弹出堆中元素&#xff0c;弹出K次完成操作&#xff01; 如果看不懂本题CPP语法的&#xff0c;可以参考我的另外一篇博客------------->CPP优先队列priori…

Python的数据库编程基础知识

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;如果停止&#xff0c;就是低谷&#xf…

【代码随想录算法训练营Day29】 491.递增子序列;46.全排列;47.全排列 II

文章目录 ❇️Day 29 第七章 回溯算法 part05✴️今日内容❇️491.递增子序列自己的思路随想录思路自己的代码 ❇️46.全排列思路代码流程 ❇️47.全排列 II思路代码 ❇️Day 29 第七章 回溯算法 part05 ✴️今日内容 491.递增子序列46.全排列47.全排列 II ❇️491.递增子序…

03.07_111期_C++_string 的增删查改实现笔记

尝试编写的错误总结 1. 对于 insert 的实现&#xff0c;找出下面代码的冗余 第一 使用了一个tmp来承接会被 \0 冲掉的位置的字符&#xff0c;实际上可以直接利用strncpy&#xff0c; 第二 while循环的循环结束调节并没有把pos位置后面的那个字符进行移动&#xff0c; 存在隐藏…

【性能测试】Jmeter+InfluxDB+Grafana 搭建性能监控平台

一、背景 为什么要搭建性能监控平台&#xff1f; 在用 Jmeter 获取性能测试结果的时候&#xff0c;Jmeter自带的测试报告如下&#xff1a; 这个报告有几个很明显的缺点&#xff1a; 只能自己看&#xff0c;无法实时共享&#xff1b;报告信息的展示比较简陋单一&#xff0c;不…

在外包公司搞了2年,出来技术都没了...

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了2年的的功能…

网络工程师笔记9

动态路由 RIP路由协议 配置简单 易于维护 适用于小型网络 周期性是30s发一次

MyBatis-Plus如何娴熟运用乐观锁

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 MyBatis-Plus如何娴熟运用乐观锁 前言乐观锁的基本概念基本概念和原理&#xff1a;为何乐观锁是解决并发问题的有效手段&#xff1a; MyBatis-Plus中乐观锁的支持1. Version 注解&#xff1a;2. 配置乐…

每日一篇 3.8

i do not have so many time to write down the words on the paper and then text on the internet.so i decide to just text the words on the internet.besides . has been flooded with work 他被工作淹没了他的工作很多 he is busy at work Recruiting 招募 if we sa…

严刑拷打_微服务

文章详情 &#xff1a;&#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a; 微服务相关知识 ⏱️ 创作时间&#xff1a;2024年03月8日 ———————————————— 文章目…

高级语言讲义2014计专(仅高级语言部分)

1. 已知&#xff0c;连续函数在区间[0, 3]有且只有一个实根&#xff0c;编写完整程序&#xff0c;利用二分法计算并输出该实根的近似值&#xff0c;要求结果精确到。 二分法的基本思路是:对于区间[a, b]上的连续函数f(x)&#xff0c;若f(a)和f(b)的正负号不同&#xff0c;则该区…

U411934 统计分数plus+

本题为本人原创&#xff0c;请勿抄袭。 难度&#xff1a;普及/提高- 题目背景 在你的帮助下&#xff0c;老师成功地完成了成绩的统计。但是&#xff0c;教委又说要添加口语听说成绩&#xff0c;并且还要写出每科的排名和平均分。老师们有彻夜难眠。 题目描述 这是一题将结…

unicloud where 使用

where介绍 在uniCloud中&#xff0c;WHERE是一个用于指定查询条件的关键字。它允许用户根据特定的条件来筛选和查询云数据库中的数据。WHERE语句的基本语法格式是WHERE condition&#xff0c;其中condition表示查询条件&#xff0c;可以是一个或多个逻辑表达式组成的条件。 在…

达梦数据库将DMHR模式下的表(迁移)导出为EXCEL文件

数据库迁移工具&#xff08;Data Transfer Service&#xff09;位于/dm8/tool/dts.其中/dm8是数据库安装目录。 在创建数据库时我们如果勾选了 “创建示例库DMHR(R)”&#xff0c;数据库实例中就带有这个数据库。 这里是用MobaXterm客户端远程控制ip地址为192.168.148.130的虚…

【C++】C++11---右值引用和移动语义

目录 1、什么是左值引用和右值引用2、左值引用与右值引用比较3、右值引用使用场景和意义4、右值引用引用左值的分析5、完美转发 1、什么是左值引用和右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的右值引用语法特性&#xff0c;所以从现在开始我们之前学习…

Xilinx 7系列 FPGA硬件知识系列(九)——FPGA的配置

目录 1 .1配置模式 1.1.1 主模式 1.1.2 从模式 1.2 7种配置模式 1.2.1 主串配置模式 1.2.2 从串配置模式 ​编辑1.2.3 主并配置模式 1.2.4 从并配置模式 1.2.5 JTAG配置模式 ​编辑1.2.6 主SPI配置模式 ​编辑1.2.7 主BPI配置模式 1.2.8 FPGA BPI加载时间…

详解float函数类型转换

函数描述 float([x]) 函数将数字或数字的字符串表示形式转换为与它等效的有符号浮点数。如果参数x是一个字符串&#xff08;十进制表示的数字串&#xff09;&#xff0c;数字前面可以添加符号来表示正数&#xff0c;或负数。符号和数字之间不能出现空格&#xff0c;但是符号前…