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

网站内容的创新wordpress 漏洞利用工具

网站内容的创新,wordpress 漏洞利用工具,seo网站优化培训,长清网站建设目录 1、Maven的下载安装 2、什么是pom#xff1f; 3、较完整的pom元素 4、默认生成Maven工程的pom内容 5、自定义的属性变量 6、依赖管理 6.1、整体依赖关系列表 6.2、依赖关系的传递性 6.3、依赖传递可能造成的问题 6.3.1、scope依赖范围 6.3.2、依赖调节 6.3.3…目录 1、Maven的下载安装 2、什么是pom 3、较完整的pom元素 4、默认生成Maven工程的pom内容 5、自定义的属性变量 6、依赖管理 6.1、整体依赖关系列表 6.2、依赖关系的传递性 6.3、依赖传递可能造成的问题 6.3.1、scope依赖范围 6.3.2、依赖调节 6.3.3、可选依赖6.4.2中详解 6.3.4、排除依赖6.4.1中详解 6.4、排除依赖和可选依赖 6.4.1、排除依赖 6.4.2、可选依赖 6.4.3、排除依赖和可选依赖举例 6.4.3、排除依赖 VS 可选依赖 7、Build插件配置 7.1、Build的两个部分配置 7.2、常用的Build结构 8、写在最后_超级POM 参考文章 1、Maven的下载安装 首选我们需要搭建一个Maven环境由于本篇侧重于分享解析pom.xml里面的元素对Maven的下载安装不做过多的阐述可以参考Maven的安装配置、IDEA中搭建Maven环境一文自行操作如有问题可以评论区留言 2、什么是pom POM全程Project Object Model又称项目对象模型。他是Maven工程的基本工作单元是一个XML可扩展标记语言文件包含了项目的基本信息用于描述项目如何构建声明项目依赖等等。执行任务或目标时Maven会在当前目录中查找 POM并读取从而获取所需的配置信息执行目标属于项目级别的配置文件。 总之pom最厉害的是提供一站式支持可用于管理源代码、配置文件、缺陷跟踪系统defect tracking system、组织和许可证licenses、项目所在的URL地址、开发者的信息和角色、项目依赖以及其他所有的和代码生命周期相关的方面。而在Maven中就只需要一个pom.xml文件可以说pom.xml就是Maven的核心 一个完整的pom.xml文件放在项目的根目录下 3、较完整的pom元素 pom的整体结构更详细pom可见 超级POM_POM文件总体配置说明.pdf project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- The Basics 基本部分 --groupId.../groupId artifactId.../artifactIdversion.../versionpackaging.../packagingdependencies.../dependenciesparent.../parentdependencyManagement.../dependencyManagementmodules.../modulesproperties.../properties!-- Build Settings 构建设置 --build.../buildreporting.../reporting!-- More Project Information 更多项目信息 --name.../namedescription.../descriptionurl.../urlinceptionYear.../inceptionYearlicenses.../licensesorganization.../organizationdevelopers.../developerscontributors.../contributors!-- Environment Settings 环境设置 --issueManagement.../issueManagementciManagement.../ciManagementmailingLists.../mailingListsscm.../scmprerequisites.../prerequisitesrepositories.../repositoriespluginRepositories.../pluginRepositoriesdistributionManagement.../distributionManagementprofiles.../profiles /project 4、默认生成Maven工程的pom内容 其中groupIdartifactIdversion组成了项目的唯一坐标。 ?xml version1.0 encodingUTF-8? !--project是pom.xml根元素它包含了pom.xml的一些约束信息声明了一些POM相关的命名空间以及xsd元素-- !-- xmlns 命名空间类似包名-- !-- xmlns:xsi xml遵循的标签规范-- !--xsi:schemaLocation 定义xmlschema的地址xml书写时需要遵循的语法-- project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd!-- 指定了当前pom.xml版本目前固定为4.0.0版本。--modelVersion4.0.0/modelVersion!-- 坐标 --!-- 属于哪个组一般是项目所在组织或公司域名的倒序 --groupIdcom.sx.kak/groupId!-- 定义当前项目在组中的唯一ID一个groupId下面可能多个项目就是靠artifactId来区分的 --artifactIdnacospro/artifactId!-- 定义项目当前的版本 --version1.0-SNAPSHOT/version!-- 打包类型可取值pom , jar , maven-plugin , ejb , war , ear , rar , par等等 --packagingjar/packaging!-- 项目的名称可省略 默认artifactId可修改为用户友好的名称 --namenacospro/name!-- 仓库的地址可省略 --urlhttp://maven.apache.org/url!--定义的依赖清单有所依赖包都需要写在这个标签里面--dependencies!--具体的依赖 --dependency/dependency/dependencies/project5、自定义的属性变量 我们可以在POM的元素下自定义Maven属性 !-- 定义的属性变量在其他地方进行使用 -- properties!-- Java版本 --java.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncoding!-- 通过${hutool.version}来使用 --hutool.version5.0.6/hutool.version!-- 通过${pagehelper.version}来使用 --pagehelper.version1.3.0/pagehelper.version /properties6、依赖管理 依赖关系描述了项目相关的所有依赖组成了项目构建过程中的一个个环节它们会自动从项目定义的仓库中下载一个项目可以设置多了依赖 可通过https://mvnrepository.com/寻找依赖获得相应的坐标具体操作可阅读Maven的安装配置、IDEA中搭建Maven环境一文6.1、整体依赖关系列表 !--定义的依赖清单有所依赖包都需要写在这个标签里面-- dependencies!--HuTool工具包 --dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion${hutool.version}/version/dependency!--pagehelper--dependency!--依赖项的组织名--groupIdcom.github.pagehelper/groupId!--依赖项的子项目名--artifactIdpagehelper-spring-boot-starter/artifactId!--依赖项的版本--version${pagehelper.version}/version!-- 依赖项的适用范围 --scopetest/scope!-- 可选依赖 对外隐藏当前所依赖的资源是不透明的如果别人依赖了本项目被配置的不会在别人的项目中依赖到--optionaltrue/optional!-- 排除依赖主动断开依赖的资源排除项目中的依赖冲突时使用不依赖该项目被排除的资源不需要指定版本--exclusionsexclusiongroupIdorg.mybatis/groupIdartifactIdmybatis/artifactId/exclusionexclusiongroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactId/exclusion/exclusions/dependency /dependencies6.2、依赖关系的传递性 直接依赖在当前项目中通过依赖配置建立的依赖关系 间接依赖当前工程pom配置了依赖AA又依赖B则本工程也依赖BB为本工程的间接依赖。 如下图A依赖于BB又依赖于C此时B是A的直接依赖C是A的间接依赖。 我们都知道在Maven中依赖是有传递性的不管Maven项目存在多少间接依赖POM中都只需要定义其直接依赖不必定义任何间接依赖Maven会动读取当前项目各个直接依赖的POM将那些必要的间接依赖以传递性依赖的形式引入到当前项目中能够帮助用户简化POM的配置。 上图A、B、C三者的依赖关系根据Maven的依赖传递机制我们只需要在项目A的 POM 中定义其直接依赖B在项目 B的POM中定义其直接依赖CMaven会解析A的直接依赖B的POM 将间接依赖C以传递性依赖的形式引入到项目A中。 6.3、依赖传递可能造成的问题 通过依赖传递关系可以使依赖关系树迅速增长到一个很大的量级但很有可能会出现依赖重复依赖冲突等情况Maven针对这些情况提供了如下功能进行处理 依赖范围Dependency scope依赖调解Dependency mediation可选依赖Optional dependencies排除依赖Excluded dependencies依赖管理Dependency management 6.3.1、scope依赖范围 我们可以在POM的依赖声明使用scope元素来控制依赖与三种classpath编译 classpath、测试 classpath、运行 classpath 之间的关系这就是依赖范围。 scope依赖项有6个常用的可选范围 compile默认值表示编译依赖范围适用于所有阶段编译、测试、运行会随着项目一起发布。表明该jar包一直全程存在/需要provided表示已提供依赖范围编译、测试时需要运行时不需要不会被打包。如servlet.jarruntime表示运行时提供依赖范围只在运行时使用如JDBC驱动适用运行和测试阶段test表示测试依赖范围测试时有效用于编译和运行测试代码。不会随项目发布system类似provided需要显式提供包含依赖的jarMaven不会在Repository中查找它不推荐optional当项目自身被依赖时标注依赖是否传递。用于连续依赖时使用依赖范围与三种classpath 的关系 6.3.2、依赖调节 Maven中用户只需要关心项目的直接依赖而不必关心这些直接依赖会引入哪些间接依赖。但当一个间接依赖存在多条引入路径时为了避免出现依赖重复的问题就会通过依赖调节来确定间接依赖的引入路径。 6.3.2.1、路径优先 当依赖中出现相同的资源时层级越深优先级越低层级越浅优先级越高 A存在以下的依赖关系 情况一A-B-C-D 情况二A-E-DD是A的间接依赖但两条引入情况上有两个不同的版本不可以同时引入否则造成重复依赖的问题。根据Maven依赖调节的第一个原则引入路径短者优先情况一的路径长度为 3情况二的路径长度为2因此间接依赖D将从A-E-D路径引入到A中。 6.3.2.2、声明优先 当资源在相同层级被依赖时配置顺序靠前的覆盖配置顺序靠后的 A存在以下依赖关系 情况一A-B-D 情况二A-C-Ddependencies... dependency...artifactIdB/artifactId .../dependency...dependency...artifactIdX/artifactId.../dependency... /dependenciesD是A的间接依赖其两条引入路径的长度都是2此时路径优先已经无法解决需要使用先声明者优先由以上配置可以看出由于B的依赖声明比C靠前所以情况一的间接依赖将从A-B-D路径引入到A中。 优先使用第一条原则解决第一条原则无法解决再使用第二条原则解决 6.3.2.3、特殊优先 当资源配置了相同资源的不同版本后配置的覆盖先配置的不做举例 6.3.3、可选依赖6.4.2中详解 在依赖中配置optional为true/false 是否向下传递如果配置为true则别人依赖了本项目被配置的不会在别人的项目中依赖到。如果为false表示可以向下传递称为间接依赖 6.3.4、排除依赖6.4.1中详解 exclusions所包含坐标排除依赖包中所包含的依赖关系 不需要添加版本直接类别排除 排除依赖可以设置当前依赖中是否使用间接依赖。注意和可选依赖区分可以达到同样的效果。 6.4、排除依赖和可选依赖 Maven依赖具有传递性在不考虑依赖范围等因素的情况下Maven根据依赖传递机制会将间接依赖C引入到A中。但如果A希望将间接依赖C排除于是Maven提供了两种解决方式排除依赖和可选依赖。 6.4.1、排除依赖 排除依赖是控制当前项目是否使用其直接依赖传递下来的间接依赖 exclusions元素下可以包含若干个exclusion子元素用于排除若干个间接依赖 exclusion元素用来设置具体排除的间接依赖该元素包含两个子元素groupId 和 artifactId用来确定需要排除的间接依赖的坐标信息 exclusion元素中只需要设置groupId和artifactId 就可以确定需要排除的依赖无需指定版本 version。 6.4.2、可选依赖 可选依赖用来控制当前依赖是否向下传递成为间接依赖 optional 默认值为 false表示可以向下传递称为间接依赖若 optional 元素取值为 true则表示当前依赖不能向下传递成为间接依赖。 6.4.3、排除依赖和可选依赖举例 假设A依赖于BB依赖于XB又依赖于Y。B 实现了两个特性其中一个特性依赖于X另一个特性依赖于Y且两个特性是互斥的关系用户无法同时使用两个特性所以A需要排除X此时就可以在A中将间接依赖X排除。 6.4.3.1、排除依赖举例 排除依赖是通过在A中使用 exclusions 元素实现的该元素下可以包含若干个 exclusion 子元素用于排除若干个间接依赖示例代码如下。 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sx.kak/groupIdartifactIdA/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdcom.sx.kak/groupIdartifactIdB/artifactIdversion1.0-SNAPSHOT/versionexclusions!-- 设置排除 --!-- 排除依赖必须基于直接依赖中的间接依赖设置为可以依赖为 false --!-- 设置当前依赖中是否使用间接依赖 --exclusion!--设置具体排除--groupIdcom.sx.kak/groupIdartifactIdX/artifactId/exclusion/exclusions/dependency/dependencies6.4.3.2、选依赖举例 在B的POM关于X的依赖声明中使用optional 元素将其设置成可选依赖示例配置如下。 project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sx.kak/groupIdartifactIdB/artifactIdpackagingjar/packagingversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdnet.biancheng.www/groupIdartifactIdX/artifactIdversion1.0-SNAPSHOT/version!--设置可选依赖true则表示当前依赖不能向下传递成为间接依赖 --optionaltrue/optional/dependency/dependencies /project6.4.3、排除依赖 VS 可选依赖 排除依赖和可选依赖都能在项目中将间接依赖排除在外但两者实现机制却完全不一样。 排除依赖是控制当前项目是否使用其直接依赖传递下来的接间依赖可选依赖是控制当前项目的依赖是否向下传递可选依赖的优先级高于排除依赖若对于同一个间接依赖同时使用排除依赖和可选依赖进行设置那么可选依赖的取值必须为false否则排除依赖无法生效。 7、Build插件配置 Build理解为构建项目需要的信息主要用于编译设置 7.1、Build的两个部分配置 在Maven的pom.xml文件中Build相关配置包含两个部分一个是build另一个是reporting。 project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd...!-- 称为Project Build是project的直接子元素 --build.../buildprofilesprofile!-- 称为Profile Build即是profile的直接子元素 --build.../build/profile/profiles /projectProfile Build包含了基本的build元素而Project Build还包含两个特殊的元素即各种Directory和extensions。 7.2、常用的Build结构 !-- 构建项目需要的信息 -- build!-- 使用的插件列表 --plugins!-- plugin元素包含描述插件所需要的信息 -- plugin!-- 插件在仓库里的group ID --groupIdorg.springframework.boot/groupId!-- 插件在仓库里的artifact ID -- artifactIdspring-boot-maven-plugin/artifactId/plugin/plugins!-- 这个元素描述了项目相关的所有资源路径列表例如和项目相关的属性文件这些资源被包含在最终的打包文件里。 -- resources!-- 这个元素描述了项目相关或测试相关的所有资源路径 -- resource!-- 描述存放资源的目录该路径相对POM路径 --directorysrc/main/java/directory!-- 包含的模式列表例如**/*.xml. -- includesinclude**/*.xml/include/includes!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性文件在filters元素里列出 -- filteringfalse/filtering/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/*.*/include/includesfilteringfalse/filtering/resource/resources /build8、写在最后_超级POM 看到这里有没有觉得对pom的理解又上了一个层次经常使用POM文件却对他是一知半解有时候就那么用了却不知道这个标签到底是啥意思于是就有了去了解每一个标签的作用的想法虽说还可能有所欠缺但是确实让我对Maven有了更上一层的理解我觉得还是有很多没有整理到后期在继续学习整理吧 超级POM就是一个比较全的POM文件如果有遇到不懂的可以去文档里面搜索如果有想要超级POM的小伙伴可见 超级POM_POM文件总体配置说明.pdf或者评论区留下邮箱地址私发给你 参考文章 https://maven.apache.org/pom.html#What_is_the_POMhttps://blog.csdn.net/jk418756/article/details/87917776https://www.cnblogs.com/cy0628/p/15034450.html
http://www.w-s-a.com/news/285039/

相关文章:

  • 怎么取网页视频网站元素计算机专业论文网站开发
  • 上海网站建设备案号怎么恢复wordpress打开页面空白
  • 30个做设计的网站企业设计网站
  • 招生网站开发的背景创意 wordpress
  • 网站备案资料查询小型企业管理系统软件
  • 温州网站建设维护怎么做好网站开发、设计
  • 佛山 做网站公司有哪些网站排名忽然不见了
  • 广告网站建设最专业东莞大朗网站设计
  • 网站做流量的论坛贴吧分销商城系统源码
  • 新手建立网站的步骤网站建设费怎么入分录
  • 哪里建网站性价比高做网站赚取广告费
  • 邢台集团网站建设价格微信怎么做捐钱的网站
  • 做网站费用需要分摊吗装修公司一般多少钱一平方
  • 公司主页的网站格式wordpress自动推送给百度
  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构