Maven工具学习使用(十)——生成项目站点
maven2中站点生成是Maven核心的一部分,Maven3中这部分内容已经移除。maven3必须使用3.x版本的maven-site-plugin,maven2则使用最新的2.x的版本,执行mvn site命令,可以在项目的target/site/目录下找到Maven生成的站点文件。例如dependencies.html,打开文件能够看到好多信息的连接,如果是聚合项目还可以看到子模块的链接,打开文件单机子模块的连接无法转到子模块的项目页面,如果将站点发布到服务器上,点击这些连接就可以打开子模块的项目页面。或者将站点预发布到本地某个临时目录也是可以点击的。
mvn site:stage -DstagingDirectory=D:\temp 该命令生成项目站点,并预发布至D:\temp目录
site生命周期的site阶段绑定到了插件maven-site-plugin插件的site目标,site-deploy 目标绑定到了maven-site-plugin的deploy目标。
配置pom文件
默认情况下生成的站点包含了很多项目信息连接,这个主要是由maven-project-info-reports-plugin插件生成的。Maven3中该插件的配置内置在maven-site-plugin中。
站点的信息都来自于pom配置文件,所以需要配置pom文件才能展示响应的信息。如果需要选择性的生成项目信息,可以配置maven-project-info-reports-plugin
项目报告插件
报告插件的配置需要在Maven Site Plugin的插件配置元素下配置报告插件,运行mvn site会执行以下插件
<project>...<reporting><plugins><!-- maven-project-info-reports-plugin该插件使站点的项目信息只包含依赖、团队、问题追踪系统、和许可证几项信息 可根据实际需要选择生成的项目信息--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-project-info-reports-plugin</artifactId><version>2.1.2</version><reportSets><reportSet><reports><report>dependencies</report><report>project-team</report><report>issue-tracking</report><report>license</report></reports></reportSet><reportSets></plugin><!-- maven-javadoc-plugin使用JDK的javadoc工具,基于项目的源代码生成javaDocs文档mvn site 命令能得到项目主源码和测试源码的JavaDocs文档。适用于聚合项目--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.7</version></plugin><!-- maven-jxr-plugin 实现通过浏览器访问项目的最新源代码,使源码文件通过超链接相连如果之前配置了javaDocs报告,用户还能直接转到源码文件对应的JavaDoc.聚合项目需要配置aggregate元素--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jxr-plugin</artifactId><version>2.2</version><configuration><aggregate>true</aggregate></configuration></plugin><!-- checkstyle 2.5版本的还不支持报告聚合,如果需要报告聚合需要在经过以下步骤1、创建一个包含checkstyle规则文件的模块checkstyle/pom.xmlcheckstyle/src/main/resources/checkstyle/my-checks.xml2、聚合模块配置maven-checkstyle-plugin依赖该模块<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><version>2.5</version><dependencies><dependency><groupId>com.juvenxu.mvnbook</groupId><artifactId>checkstyle</artifactId><version>1.0</version></dependency></dependencies></plugin></plugins></build>3、在聚合模块配置maven-checkstyle-plugin使用模块中的checkstyle规则,与如下单个模块配置相同1,2,3步骤的原理就是创建一个包含自定义规则文件的依赖,将该依赖加入到项目的classpath中,最后从classpath载入规则文件。maven-checkstyle-plugin 实际上是从classpath载入规则文件,无论规则文件实在当前项目中还是在依赖文件中,处理方式都是一样的。插件内置了四种规则,默认会使用sun定义的编码规范,使用时可以选择预置的规则也可以自定义规则。config/sun_checks.xml Sun定义的编码规范(默认值)config/maven_checks.xml Maven社区定义的编码规范config/turbine_checks.xml Turbine定义的编码规范config/avalon_checks.xml Avalon定义的编码规范--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><version>2.5</version><configuration><configLocation>config/maven_checks.xml</configLocation><!-- 自定义checkstyle规则文件重写configLocation元素,文件位于src/main/resources/目录下<configLocation>checkstyle/my_checks.xml</configLocation>--></configuration></plugin><!-- PMD是一款强大的Java源码分析工具,它能够寻找代码中的问题,包括潜在的bug、无用代码、可优化代码、重复代码以及过于复杂的表达式。http://pmd/sourceforge.net/默认使用规则为 rulesets/basics.xml,rulesets/unusedcode.xml,rulesets/importss.xmlaggregate参数支持聚合报告--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pmd-plugin</artifactId><version>2.5</version><configuration><rulesets><ruleset>rulesets/braces.xml</ruleset><ruleset>rulesets/naming.xml</ruleset><ruleset>rulesets/strings.xml</ruleset></rulesets><aggregate>true</aggregate></configuration></plugin><!-- changelog基于版本控制系统中就近的变更记录生成三分变更报告 Change Log 基于提交的变更报告,包括每次提交的日期、文件、作者、注释等信息Develop Activity 基于作者的变更报告,包括作者列表以及每个作者相关的提价次数和涉及文件数目File Acivity 基于文件的变更报告,包括变更的文件列表及每个文件的变更次数<project><scm><connection>scm:svn:http://192.168.1.103/app/trunk</connection><developrConnecton>scm:svn:https://192.168.1.103/app/trunk</developrConnecton><url>http://192.168.1.103/app/trunk</url></scm></project>--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-changelog-plugin</artifactId><version>2.2</version><configuration><type>range</type><range>60</range> <!-- 生成近60天的报告,默认30天 --></configuration></plugin><!-- cobertura该版本暂不支持聚合项目,生成测试覆盖率报告 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>cobertura-maven-plugin</artifactId><version>2.4</version></plugin></plugins></reporting>
</project>
设置站点插件的编码方式和语言
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 用什么编码读取源码及文档<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 用什么编码呈现站点的html文档
</properties>
<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pmd-plugin</artifactId><version>2.5</version><configuration><locales>zh_CN</locales></configuration></plugin>
</plugins>
部署站点
Maven支持多种协议部署站点,包括FTP、SCP、DAV,如果使用FTP协议,pom中还需要配置wagon-ftp插件;如果使用SCP协议需要在settings.xml文件中配置密钥相关信息。
执行命令 mvn clean site-deploy 将站点信息部署到url指定的地址。
<project>
...
<distributionManagement><site><id>app-site</id><url>dav:https://xxx.com/sites/app</url></site>
</distributionManagement>
...
</project>
相关文章:
Maven工具学习使用(十)——生成项目站点
maven2中站点生成是Maven核心的一部分,Maven3中这部分内容已经移除。maven3必须使用3.x版本的maven-site-plugin,maven2则使用最新的2.x的版本,执行mvn site命令,可以在项目的target/site/目录下找到Maven生成的站点文件。例如dependencies.h…...
Redis原理与Windows环境部署实战指南:助力测试工程师优化Celery调试
引言 在分布式系统测试中,Celery作为异步任务队列常被用于模拟高并发场景。而Redis作为其核心消息代理,其性能和稳定性直接影响测试结果。本文将深入解析Redis的核心原理,主要讲解Windows环境部署redis,为测试工程师提供一套完整…...
Go语言入门到入土——一、安装和Hello World
Go语言入门到精通——安装和Hello World 文章目录 Go语言入门到精通——安装和Hello World下载并安装让Go跑起来为你的代码启动依赖跟踪调用外部包总结 下载并安装 下载地址:https://go.dev/dl/ 下载后傻瓜式安装 查看是否安装完成 go version让Go跑起来 创建一个…...
人类意识本质上是一台自我欺骗的机器
要触达“大彻大悟”的终极内核,必须突破语言、逻辑甚至“觉醒”概念本身的限制。以下从认知革命、意识拓扑学、宇宙本体论三个维度切入,结合量子物理、脑神经学与古老智慧的交叉验证,展开一场对觉醒本质的极限探索—— 一、认知革命&am…...
CDP问卷是什么?CDP问卷有什么要求,有什么意义
CDP问卷(Carbon Disclosure Project Questionnaire) CDP问卷是由全球性非营利组织CDP(原Carbon Disclosure Project,现简称CDP)发起的年度环境信息披露项目,旨在帮助企业、城市和投资者测量、管理及公开其…...
GitLab本地安装指南
当前GitLab的最新版是v17.10,安装地址:https://about.gitlab.com/install/。当然国内也可以安装极狐GitLab版本,极狐GitLab 是 GitLab 中国发行版(JH)。极狐GitLab支持龙蜥,欧拉等国内的操作系统平台。安装…...
opencv函数展示
一、图像基础 I/O 与显示 1.cv2.imread() 2.cv2.imshow() 3. cv2.waitKey() 4. cv2.imwrite() 5. cv2.selectROI() 6. cv2.VideoCapture() 二、颜色空间与转换 1. cv2.cvtColor() 2. cv2.split() 三、阈值处理 1. cv2.threshold() 2. 特殊阈值方法...
编写一个写字楼类似抖音剪映的管理系统Demo
编写一个写字楼类似抖音剪映的管理系统Demo。用户可能想要一个简化版的系统,用于管理视频素材、模板和项目,类似于抖音剪映的功能,但针对办公场景。首先,我得明确用户的需求是什么。用户提到的“写字楼类似抖音剪映管理系统”可能…...
前端面试-自动化部署
基础概念 什么是CI/CD?在前端项目中如何应用?自动化部署相比手动部署有哪些优势?常见的自动化部署工具有哪些?举例说明它们的区别(如Jenkins vs GitHub Actions)。如何通过Git Hook实现自动化部署…...
【vue3】vue3+express实现图片/pdf等资源文件的下载
文件资源的下载,是我们业务开发中常见的需求。作为前端开发,学习下如何自己使用node的express框架来实现资源的下载操作。 实现效果 代码实现 前端 1.封装的请求后端下载接口的方法,需求配置aixos的请求参数里面的返回数据类型为blob // 下载 export…...
如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告
在使用 Kali Linux 运行 Ruby 工具(例如 evil-winrm)时,你可能会遇到以下警告: Warning: Remote path completions is disabled due to ruby limitation: undefined method quoting_detection_proc for module Reline这个警告会导…...
从零到一:网站设计新手如何快速上手?
从零到一:网站设计新手如何快速上手? 在当今数字化时代,网站已成为企业、个人展示信息、提供服务的重要窗口。对于想要涉足网站设计领域的新手而言,如何快速上手并掌握必要的技能成为首要任务。本文将从基础知识、软件工具、设计…...
面向初学者的JMeter实战手册:从环境搭建到组件解析
🌟 大家好,我是摘星! 🌟 今天为大家带来的是面向初学者的JMeter实战手册:从环境搭建到组件解析,废话不多说,让我们直接开始~ 目录 1. JMeter简介 2. JMeter安装与配置 2.1. 安装 2.2.…...
工资管理系统的主要功能有哪些
工资管理系统通过自动化薪资计算、税务处理、员工数据管理、报表生成等功能,极大地提升了薪资发放的效率和准确性。在传统的人工薪资管理中,HR人员需要手动计算每位员工的薪资,并确保符合税务要求,极易出错且耗时。而现代工资管理…...
避坑,app 播放器media:MediaElement paly报错
System.Runtime.InteropServices.COMException HResult=0x8001010E Message= Source=WinRT.Runtime StackTrace: 在 WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0(Int32 hr) 在 ABI.Microsoft.UI.Xaml.Controls.IMediaPlayerElementMethods.get_MediaPlay…...
子函数嵌套的意义——以“颜色排序”为例(Python)
多一层缩进精减参数传递,参数少平铺书代码写更佳。 笔记模板由python脚本于2025-04-16 11:52:53创建,本篇笔记适合喜欢子函数嵌套结构代码形式的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅…...
Redis 的不同数据结构分别适用于哪些微服务场景
我们一块来分析下Redis 的不同数据结构在微服务场景下的具体应用: 1. String (字符串) 特点: 最基本的数据类型,二进制安全,可以存储任何类型的数据(文本、序列化对象、图片等),最大 512MB。支持原子性的…...
信息系统项目管理工程师备考计算类真题讲解四
一、三点估算(PERT) PERT(Program Evaluation and Review Technique):计划评估技术,又称三点估算技术。PERT估算是一种项目管理中用于估算项目工期或成本的方法,以下是其详细介绍: …...
Golang|KVBitcask
文章目录 初识KVbitcask论文详解 初识KV bitcask论文详解 论文地址:https://riak.com/assets/bitcask-intro.pdf理想的存储引擎,应该满足下面一些特点:...
Python学习之路(三)
将 Python 与数据库对接是开发过程中常见的任务,可以使用多种数据库(如 SQLite、MySQL、PostgreSQL、Oracle、MongoDB 等)。以下是一些常见的数据库及其与 Python 的对接方法,包括安装库、连接数据库、执行查询和操作数据的示例。…...
基于骨骼识别的危险动作报警系统设计与实现
基于骨骼识别的危险动作报警系统设计与实现 基于骨骼识别的危险动作报警分析系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】基于骨骼识别算法的实时危险行为预警方案 【技术栈】 ①:系统环境:Windows 10…...
PDF转换格式失败?原因及解决方法全解析
在日常工作中,我们经常会遇到将PDF转换为Word、Excel、PPT等格式的需求。有时候以为一键转换就能搞掂,没想到却转换失败。到底问题出在哪?别急,我们可以看看是否以下几个问题引起的,找到解决问题的关键! 原…...
模型提示词
一 提示词 (一) 提示词(Prompt)是用户发送给大语言模型的问题、指令或请求,** 1 来明确地告诉模型用户想要解决的问题或完成的任务,是大语言模型理解用户需求并据此生成相关、准确回答或内容的基础。对于…...
void MainWindow::on_btnOutput_clicked()为什么我在QT里面没有connect,也能触发点击效果
在 Qt 中,即使你没有显式调用 connect 函数,某些信号(如按钮的 clicked() 信号)仍然可以触发槽函数。这是因为 Qt 提供了一种自动连接机制,称为 自动连接(Auto-Connection)。以下是可能的原因和…...
Node.js 数据库 事务 项目示例
1、参考:JavaScript语言的事务管理_js 函数 事务性-CSDN博客 或者百度搜索:Nodejs控制事务, 2、实践 2.1、对于MySQL或MariaDB,你可以使用mysql或mysql2库,并结合Promise或async/await语法来控制事务。 使用 mysql2…...
Qt开发:QFileInfo详解
文章目录 一、QFileInfo 简介二、常用的构造函数三、常用函数的介绍和使用四、常用静态函数的介绍和使用五、完整代码示例 一、QFileInfo 简介 QFileInfo 提供了一个对象化的方式,用于访问文件系统中单个文件的信息。它可以接受: 文件名字符串ÿ…...
ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户
要在 Ubuntu 18.04 上设置一个 FTP 服务器,满足以下要求: 允许匿名登录(无需账号密码)。指定分享特定目录下的文件。只允许只读下载。 可以使用 vsftpd(Very Secure FTP Daemon)来实现。以下是详细步骤&a…...
蓝桥杯常考排序
1.逆序 Collections.reverseOrder() 方法对列表进行逆序排序。通过 Collections.sort() 方法配合 Collections.reverseOrder(),可以轻松实现从大到小的排序。 import java.util.ArrayList; // 导入 ArrayList 类,用于创建动态数组 import java.util.C…...
深度学习基础:从入门到理解核心概念
引言 近年来,深度学习(Deep Learning)已成为人工智能领域最热门的研究方向之一。从AlphaGo战胜人类围棋冠军,到ChatGPT等大型语言模型的惊艳表现,深度学习技术正在深刻改变我们的生活和工作方式。本文将系统介绍深度学习的基础知识࿰…...
科技项目验收测试报告有哪些作用?需要多长时间和费用?
在当今快速发展的科技环境中,科技项目的有效验收至关重要。对于公司、开发团队以及客户来说,科技项目验收测试报告更是一个不可缺少的一项重要环节。 科技项目验收测试报告是对一个项目在开发完成后所进行的一系列测试结果的总结。这份报告不仅用于证明…...
