POM文档的解析

对pom文档常用标签的解释:学习网址Maven – POM Reference 

Maven – pom.xml 文件 | 奇客谷教程 💯

https://www.cnblogs.com/chenxygx/p/10154445.html

mvn help:effective-pom   //展示最终生效的pom内容
mvn dependency:tree>tree.txt  //列举出所有引用的包
mvn dependency:tree>tree.txt -Dverbose  //列出所有冲突的包(duplicate)

 参数    说明
modelVersion    Maven配置版本
groupId    代表组织和整个项目的唯一标志。比如说所有的Maven组件的groupId都是org.apache.maven。
artifactId    具体项目的名称
version    用于说明目前项目的版本,在引用依赖的时候确定具体依赖的版本号。
packaging    规定项目的输出格式,包括jar、war、pom、apk等,根据实际需要确定。例如,开发一般的java库,可以使用jar packaging;开发android则是apk packaging。
name    项目显示名称
url    项目地址
properties    用于定义变量,可以在当前配置文件pom.xml,以及子Module的pom.xml中引用,引用方式:propertyname,例如:{propertyname},例如:propertyname,例如:{junit.version}
dependencies    用户配置Module的依赖
————————————————
原文链接:https://blog.csdn.net/It_sharp/article/details/102924592

scope单个依赖项的作用域,作用域可以是compile、test、runtime、provided、system之一,作用域的意图是限定该依赖项作用范围,如test,则表明依赖项只在test时起作用

distributionManagement

此元素描述了与项目分发相关的所有内容。它主要用于部署工件和构建生成的站点。

repositoryDeploymentRepository:将项目生成的工件部署到远程存储库所需的信息。

snapshotRepositoryDeploymentRepository:何处将工件快照部署到。如果没有给出,则默认为 repository元素。

siteSite:部署项目网站所需的信息。

downloadUrlString:项目下载页面的URL。如果没有给出用户将被引用到url给出的主页 。这是为了帮助定位由于许可限制而不在存储库中的工件。

relocationRelocation:工件的重定位信息(如果已移动到新的组ID和/或工件ID)。

statusString:在远程存储库中提供此工件的状态。这不能在您的本地项目中设置,因为它是由放置在reposiory中的工具更新的。有效值包括:无(默认), 转换(存储库管理器从Maven 1 POM转换), 合作伙伴(直接从合作伙伴Maven 2存储库同步), 部署(从Maven 2实例部署), 验证(已手动)验证为正确且最终)。

repository

存储库包含部署到远程存储库所需的信息。

uniqueVersionboolean:无论分配快照包含时间戳的独特版本和版本号,或者使用相同的版本,每次
默认值是:true。

releasesRepositoryPolicy:如何处理从此存储库下载的版本。

snapshotsRepositoryPolicy:如何处理从此存储库下载快照。

idString:存储库的唯一标识符。例如,这用于将存储库与settings.xml文件中的配置进行匹配 。此外,在POM继承和配置文件注入期间使用标识符来检测应合并的存储库。

nameString:人类可读的存储库名称。

urlString:存储库的URL,格式为 protocol:// hostname / path。

layoutString:此存储库用于定位和存储工件的布局类型 - 可以是 旧版或 默认版。
默认值为:default。

build

所述 <build>元素包含建立该项目所需的信息。默认值在Super POM中定义。

sourceDirectoryString:此元素指定包含项目源的目录。生成的构建系统将在构建项目时从此目录编译源。给定的路径是相对于项目描述符的。默认值为src / main / java。

scriptSourceDirectoryString:此元素指定包含项目脚本源的目录。此目录与sourceDirectory的不同之处在于,在大多数情况下,其内容将被复制到输出目录(因为脚本是解释而不是编译的)。默认值为src / main / scripts。

testSourceDirectoryString:此元素指定包含项目的单元测试源的目录。生成的构建系统将在测试项目时编译这些目录。给定的路径是相对于项目描述符的。默认值为 src / test / java。

outputDirectoryString:放置已编译应用程序类的目录。默认值为target / classes。

testOutputDirectoryString:放置已编译测试类的目录。默认值为target / test-classes。

extensions/extension*List<Extension>:(很多)从这个项目中使用的一组构建扩展。

defaultGoalString:当没有为项目指定时,要执行的默认目标(或Maven 2中的阶段)。请注意,在多模块构建的情况下,只有顶级项目的默认目标是相关的,即忽略子模块的默认目标。从Maven 3开始,多个目标/阶段可以用空格分隔。

resources/resource*List<Resource>:(很多)此元素描述所有类路径资源,例如与项目关联的属性文件。这些资源通常包含在最终包中。默认值为 src / main / resources。

testResources/testResource*List<Resource>:(很多)此元素描述所有类路径资源,例如与项目的单元测试关联的属性文件。默认值为 src / test / resources。

directoryString:放置构建生成的所有文件的目录。默认值为target。

finalNameString:生成的工件将被调用的文件名(不包括扩展名,没有路径信息)。默认值为 $ {artifactId} - $ {version}。

filters/filter*List<String>:(多个)启用过滤时使用的过滤器属性文件列表。

pluginManagementPluginManagement:默认插件信息可供从此项目派生的项目参考。除非引用,否则此插件配置将不会被解析或绑定到生命周期。给定插件的任何本地配置都将覆盖插件的整个定义。

plugins/plugin*List<Plugin>:(很多)要使用的插件列表。

plugin

所述<plugin>元素包含一个插件所需信息。

groupIdString:存储库中插件的组ID。
默认值为:org.apache.maven.plugins。

artifactIdString:存储库中插件的工件ID。

versionString:要使用的插件的版本(或有效版本范围)。

extensionsString:是否从此插件加载Maven扩展(例如打包和类型处理程序)。出于性能原因,只应在必要时启用此功能。注意:虽然出于技术原因,此字段的类型为 String,但语义类型实际上是 布尔值。默认值为 false。

executions/execution*List<PluginExecution>:(很多)在构建生命周期中要执行的一组目标的多个规范,每个目标都具有(可能)不同的配置。

dependencies/dependency*List<Dependency>:(很多)此项目需要引入插件的类加载器的其他依赖项。

goalsDOM:不推荐。未被Maven使用。

inheritedString:是否应将任何配置传播到子POM。注意:虽然出于技术原因,此字段的类型为 String,但语义类型实际上是布尔值。默认值为 true。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger是一个用于描述和自动生成API文档的工具,可以帮助开发人员快速生成接口文档,提高API开发效率。针对Map类型参数的解析,可以使用Swagger提供的注解来描述。 首先,我们需要在pom.xml文件中添加Swagger的依赖: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${springfox.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${springfox.version}</version> </dependency> ``` 其中,`${springfox.version}`是Swagger的版本号。 接着,在Spring Boot应用程序中,我们需要创建一个Swagger配置类,用于配置Swagger的基本信息,例如接口文档的标题、描述、版本号等等。示例代码如下: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.example.demo")) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger Demo") .description("This is a demo application for Swagger") .version("1.0.0") .build(); } } ``` 在上面的代码中,我们创建了一个`Docket`对象,用于配置Swagger的基本信息,包括扫描的API接口、文档的标题、描述和版本号。其中,`RequestHandlerSelectors`和`PathSelectors`用于指定扫描的包和路径。 接着,我们可以在Controller中使用Swagger提供的注解来描述接口和参数。针对Map类型参数,可以使用`@ApiParam`注解来描述Map中的键值对。示例代码如下: ```java @ApiOperation("添加用户") @ApiImplicitParams({ @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "string", paramType = "query"), @ApiImplicitParam(name = "age", value = "年龄", required = true, dataType = "int", paramType = "query"), @ApiImplicitParam(name = "address", value = "地址", required = true, dataType = "map[string,string]", paramType = "query") }) @PostMapping("/user") public String addUser(@RequestParam String username, @RequestParam int age, @ApiParam("地址") @RequestParam Map<String, String> address) { // 处理添加用户的逻辑 return "添加用户成功"; } ``` 在上面的代码中,我们使用`@ApiImplicitParams`注解来描述接口的参数,其中`@ApiImplicitParam`用于描述具体的参数信息,包括参数名称、描述、数据类型、是否必填等等。针对Map类型参数,我们使用`map[string,string]`来描述Map的键值对,其中`string`表示Map的键和值都是字符串类型。 同时,在方法的参数中,我们使用`@ApiParam`注解来描述Map类型参数的具体信息,包括参数名称和描述。这样,Swagger就能正确解析Map类型参数,并生成相应的接口文档

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值