热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mavenmetadata.xml使用

最近在开发过程中,发现工程中的一些包有问题,主要分为以下两种:1、最新包(版本号未变,只是被更新了ÿ

最近在开发过程中,发现工程中的一些包有问题,主要分为以下两种:

1、最新包(版本号未变,只是被更新了)少了一个方法

2、jar包被更新了,但是无法更新最新的包下来

首先先确定一下更新包会导致更新哪些文件?下面都以a-1.0.1-snapshot.jar包为例

当你更新了a-snapshot.jar的内容,并上传到maven服务器时,会更新一个元数据文件maven-metadata.xml,这个文件内容类似如下



com.my.testua1.0.1-SNAPSHOT20160909.0818283420160909081828jar1.0.1-20160909.081828-3420160909081828pom1.0.1-20160909.081828-3420160909081828

这个文件是很重要的,你的每次提交都会更新这个文件,当从maven下载jar包时,也会根据这个文件进行jar包的查找。若这时你去更新jar包,会下载最新包a-1.0.1-20160909.081828-24.jar,下载到本地后会复制一份重命名为a-1.0.1-snapshot.jar。

对于刚才说的第二个问题,就是因为maven-metadata.xml文件中的timestamp和updated不一致,导致找不到最新包,一般可能会报错Missing artifact

从现在看,想解决这两个问题,就是需要制定相同版本号下某个更新之后的jar包,并不一定是最新包。

既然maven-metadata.xml文件在maven服务器上可以指定下载哪个jar包,那么本地是否也可以指定呢?答案是肯定的,本地jar包一般到在.m2/repository路径下,在jar包所在的目录下一般会存在maven-metadata.xml这个文件,可以复制一份重命名为maven-metadata-local.xml。

 maven在build后会自动去Downloading 这个maven-metadata.xml文件,这个文件可以看作版本信息,作为一个版本比对。 在咱们使用maven更新工程的jar包时,其实maven是会比较服务器上的maven-metadata.xml和本地的maven-metadata-local.xml中的lastUpdated时间戳值,哪个值更大,就以哪个文件为准。这里需要注意的是,若是maven-metadata-local.xml文件的值大,这时候就中止下载了,直接使用本地的jar包,所以你得自己准备好自己想用的jar包。

 


推荐阅读
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • Android Studio 中 Gradle 使用的常见问题与解决方案
    本文探讨了在使用 Android Studio 进行开发时,遇到的与 Gradle 相关的问题,包括每次打开项目都需要下载 Gradle 和 Gradle 插件依赖包下载失败或卡顿等问题,并提供了详细的解决方法。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细解析了Java中throw和throws的关键区别,同时涵盖了JDK的定义、Java虚拟机的关键约定、Java的跨平台性、自动垃圾回收机制、源文件结构、包的概念及作用等多个核心知识点,旨在帮助学生更好地准备Java期末考试。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 深入解析:OpenShift Origin环境下的Kubernetes Spark Operator
    本文探讨了如何在OpenShift Origin平台上利用Kubernetes Spark Operator来管理和部署Apache Spark集群与应用。作为Radanalytics.io项目的一部分,这一开源工具为大数据处理提供了强大的支持。 ... [详细]
author-avatar
旺仔牛奶糖2702938317
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有