当前位置: 首页 > wzjs >正文

网站打不开百度浏览器官网在线使用

网站打不开,百度浏览器官网在线使用,网络营销事件,做校园代购较好的网站大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! 建议使用mvn dependency:analyze命令来摆脱已声明但未使用的依赖项: 还有另一个用例, mvn dependency:analyze 它可…

大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构!

建议使用mvn dependency:analyze命令来摆脱已声明但未使用的依赖项:

还有另一个用例, mvn dependency:analyze 它可以显示您在代码中使用但未在 pom.xml 中声明的依赖项。这有效是因为您对类路径具有传递依赖性。要么不使用该依赖项,要么声明它。

虽然几年前这是一个好主意,但今天却是一个危险的建议。在这篇文章中,我想解释一下这个插件的作用以及为什么不应该在最简单的项目中使用它。

命令mvn dependency:analyze

Maven 使用插件架构;在上面的命令中,插件是maven-dependency-plugin。一个插件承载着几个相关的_目标_。在这里,它是analyze

分析此项目的依赖项并确定哪些是:已使用且已声明;已使用且未声明;未使用且已声明。此目标旨在独立使用,因此它始终执行该test-compile阶段 -dependency:analyze-only在参与构建生命周期时改用该目标。

默认情况下,maven-dependency-analyzer用于执行分析,由于它在字节码级别工作而存在限制,但可以通过analyzer参数插入任何分析器。

–依赖项:分析

maven-dependency-analyzer是一个共享的 Maven 组件。它的描述相当详细:

分析项目中未声明或未使用的工件的依赖关系。

警告:由于分析是在字节码而不是源代码上进行的,因此有些情况无法检测到,包括常量、仅保留源代码的注释以及 Javadoc 中的链接。当这些是依赖项的唯一用途时,这可能会导致不正确的结果。

主要成分为ProjectDependencyAnalyzer,采用ClassAnalyzerDependencyAnalyzer

–maven依赖分析器

警告清楚地表明它在_字节码_级别起作用。特别是,它明确提到它不考虑源级注释。

Spring Boot 启动器

很久以前,我描述了如何设计自己的 Spring Boot starter ,从那时起它就没有发生过太大的变化。如果你刚接触 Spring Boot starter,这里有一个总结。

SpringBoot 依赖于 AutoConfiguration 类。AutoConfiguration 类是常规配置类,_即_它们对应用程序类有所贡献。您可以设置特定的激活条件,例如 Spring 属性的存在,但这些条件并非特定于自动配置。

这是一个非常简化的流程:

Spring Boot 自动附带的 JAR 是org.springframework.boot:spring-boot-autoconfigure。你可以检查其内容META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

...
org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration
org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration
org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.ReactiveMultipartAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.ReactiveWebServerFactoryAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.WebSessionIdResolverAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.error.ErrorWebFluxAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration
org.springframework.boot.autoconfigure.websocket.reactive.WebSocketReactiveAutoConfiguration
org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration
org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration
org.springframework.boot.autoconfigure.webservices.WebServicesAutoConfiguration
org.springframework.boot.autoconfigure.webservices.client.WebServiceTemplateAutoConfiguration

Enter fullscreen mode Exit fullscreen mode

举个例子,下面是RestClientAutoConfiguration

@AutoConfiguration(after = { HttpClientAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class }) //1
@ConditionalOnClass(RestTemplate.class)                //2
@Conditional(NotReactiveWebApplicationCondition.class) //3
public class RestTemplateAutoConfiguration {// Class body
}

Enter fullscreen mode Exit fullscreen mode

  1. 设置自动配置类的顺序
  2. RestTemplate如果类位于类路径上则激活
  3. 如果我们不在响应式 Web 应用环境中则激活

请注意,无论类是否__在类路径上,类加载器RestTemplateAutoConfiguration都可以正常加载类!如上所示,Spring 充分利用了此机制。实际上,注释中配置的类的解析被推迟到_显式_访问它们为止。RestTemplate

带入maven-dependency-analyzer现代

提交者在 2007 年设计了该分析器:当时它的样子如下。Spring Boot 的推出时间较晚,为 2010 年。因此,该分析器未在注释中采用延迟类加载。请注意,现在情况仍然如此;该项目并没有得到太多的关注。

在 Spring Boot 项目中使用该插件时,您会得到很多误报。我在一个简单的 Spring Boot 项目中尝试了它,在 PostgreSQL 上使用 WebFlux 和 R2DBC。

以下是我运行时输出的一小部分摘录mvn analyze:dependencies

[WARNING] Unused declared dependencies found:
[WARNING]   org.springframework.boot:spring-boot-starter-data-r2dbc:jar:3.4.0:compile
[WARNING]   org.testcontainers:postgresql:jar:1.20.4:test
[WARNING]   org.testcontainers:r2dbc:jar:1.20.4:test

Enter fullscreen mode Exit fullscreen mode

如果我删除任何这些依赖项,测试就不会运行。

要使分析器与 Spring Boot 项目一起工作,需要什么?让我们分析一下分析器。

该插件允许配置另一个分析器:

指定要使用的项目依赖项分析器(plexus 组件角色提示)。默认情况下,使用 maven-dependency-analyzer。要使用此功能,您必须为此插件声明一个包含分析器代码的依赖项。分析器必须具有声明的 Plexus 角色名称,您可以在此处指定角色名称。

  • 类型java.lang.String
  • 自从2.2
  • 必需的No
  • 用户属性analyzer
  • 默认default

–依赖项:分析

我们可以创建一个整体的分析器,重复使用上面的内容,但添加一个特定于 Spring Boot 的分析器。

结论

Maven 分析器的当前状态对现代 Spring Boot 项目没有任何好处。现有代码可供配置甚至扩展。但是,我们需要嵌入大量 Spring Boot 逻辑。对于 Quarkus 和 Micronaut 项目,我们还需要专用代码。

我不知道这是否值得花费时间和精力。如果你认为值得,我希望这篇博文可以作为早期的分析。

进一步来说:

  • 依赖关系:分析
  • Maven 依赖分析器
  • 设计你自己的 Spring Boot 启动器 – 第 1 部分
  • 设计你自己的 Spring Boot 启动器 – 第 2 部分

原文地址:https://mp.weixin.qq.com/s/ro3EWXyoQKI0EcUqOZTLsQ

http://www.dtcms.com/wzjs/256802.html

相关文章:

  • 建设安全带官方网站关键词排名优化顾问
  • 如何做服装微商城网站seo关键字优化
  • 石家庄网站建设诚荐优度网络什么是软文营销
  • 产地证是在哪个网站上做东莞百度快照优化排名
  • 个人做网站有什么用百度官网优化
  • 粉色的网站精准引流的网络推广方法
  • wordpress 主题更改语言百度快照优化推广
  • 政府网站改版建设建议游戏优化是什么意思?
  • 站长之家官网网址seo公司的选上海百首网络
  • 网站建设与维护怎么学seo和sem的区别
  • 原阳县建站塔山双喜谷歌收录查询工具
  • 井祥交通建设工程有限公司 网站拓客平台有哪些
  • 做网站案例兰州网络seo
  • 网站开发中 敬请期待短信营销
  • 个人微信公共号可以做微网站么活动软文怎么写
  • 老司机收藏网站在线观看软件推广平台
  • 做带支付平台的协会网站大概全球搜是什么公司
  • 做网站好还是网页好网站快速排名互点软件
  • 注册域名 不建网站网络推广公司联系方式
  • 网站空间如何续费能打开各种网站的浏览器下载
  • 做网站哪里最好seo搜索引擎优化教程
  • 深圳做网站联雅站长之家站长工具综合查询
  • 网络架构ossseo二级目录
  • 深圳网站建设网络推广html简单网页设计作品
  • cn网站建设多少钱免费入驻的跨境电商平台
  • 域名解析网站建设河源新闻最新消息
  • 旅游政务网站建设seo网络优化软件
  • 自用网站开发费用会计分录传智播客培训机构官网
  • 怎么评价一个网站设计做的好坏网络营销平台
  • 郑州同济医院正规吗包头整站优化