Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Maven尝试使用错误的快照版本

Maven尝试使用错误的快照版本
EN

Stack Overflow用户
提问于 2009-06-12 02:37:36
回答 2查看 4.9K关注 0票数 4

我正在尝试将第三方库的快照版本部署到我们的本地存储库(由于遗留的原因,这是旧版本,不再托管在任何在线存储库,目前我不能取代它,因此我必须在本地托管它)。

现在,我想我误解了快照的概念,所以如果有人能纠正我,我将非常感激。我拥有的jar文件名为foo- 0.5.0 -20090612.124.jar,我尝试使用maven deploy:deploy file将其上传到版本0.5.0下的org.bar.foo。我的POM中的版本依赖是0.5.0-SNAPSHOT

每次我将jar文件上传到本地存储库时,文件名中日期后面的数字都会被迭代(即125),但当我运行maven install时,maven会尝试下载具有先前数字(即124)的jar。

那么,有没有办法让maven下载正确的快照版本,或者我不应该将第三方快照文件上传到我们的存储库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-12 09:53:45

您拥有的用例很好。我相信Maven人员推荐的最佳实践是,一旦您将jar的快照版本上传到共享存储库,您应该停止将其视为快照,而应将其视为发布。

这是有意义的,因为您希望人们依赖于该工件的特定版本的。该工件并未在积极开发中,预计在任何时候都不会随意更改,因此应该将其视为一个发布版本。只有一个你给它起了你个人喜欢的名字,而另一个人认为它是快照。

当您请求依赖项foo-0.5.0-SNAPSHOT时,我不相信Maven会查找foo-0.5.0-。我相信它确实会在存储库中查找foo-0.5.0-SNAPSHOT,这就是为什么您找不到它的原因。(这一点不是100%确定的,因为我们不会给快照加时间戳。我们只是在制作时不断地用新版本覆盖-SNAPSHOT jars。)

因此,将foo-0.5.0-20090612.124.jar放入您的第三方存储库(由于上述原因,该存储库应该只包含版本)。然后在您的pom中,显式地引用“发布的”工件foo-0.5.0-20090612.124,一切都应该正常工作。

票数 4
EN

Stack Overflow用户

发布于 2009-06-12 02:45:25

我不确定我是否理解了,您应该将一个名为myartifact.jar的工件附加到带有0.5-SNAPSHOT版本的POM上。

在部署时,您的存储库应该将-SNAPSHOT更改为时间戳,并更新存储库元数据以反映这是最新的快照版本,以便它能够正确地为快照请求提供服务。

您是使用诸如ArchivaNexus之类的存储库,还是仅使用FTP/HTTP服务器?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/986040

复制
相关文章
maven快照版本_网站首页快照不更新
Maven 是 Apache的一个开源项目,Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需做一些简单的配置,就可以批量完成项目的构建、报告和文档的生成工作。在国内开发中使用的构建工具多为Maven,当然还有Gradle、Bazel 等构建工具。
全栈程序员站长
2022/11/09
3.5K0
maven快照版本_网站首页快照不更新
Maven快照版本要这样用才真的香!
今天又分享一个问题解决的故事。请看下图框起来的错误,明显就是找不到这个class嘛!
猿天地
2020/04/21
1.6K0
Maven快照版本要这样用才真的香!
Maven 快照(SNAPSHOT)
一个大型的软件应用通常包含多个模块,并且通常的场景是多个团队开发同一应用的不同模块。举个例子,设想一个团队开发应用的前端,项目为 app-ui(app-ui.jar:1.0),而另一个团队开发应用的后台,使用的项目是 data-service(data-service.jar:1.0)。
陈不成i
2021/07/15
2.1K0
Maven快照机制(SNAPSHOT)
一个大型的软件应用通常包含多个模块,并且通常的场景是多个团队开发同一应用的不同模块。举个例子,设想一个团队开发应用的前端,项目为app-ui(app-ui.jar:1.0),而另一个团队开发应用的后台,使用的项目是data-service(data-service.jar:1.0)。
似水的流年
2020/04/02
2.7K0
Redis快照错误引发的血案
用我那并不熟练的英语读了一遍,感觉好像是配置的rdb快照,但是现在却不能写入磁盘。所以报错了。
用户1072003
2022/12/02
7700
maven快照更新策略_eclipse更新maven包
A项目依赖于项目B,B每次改动就赋予一个新版本号,然后告诉A我改版本好了啊,每次改动都得告诉,有时忘了就麻烦了。
全栈程序员站长
2022/11/09
6150
使用maven插件启动工程报"Not a Maven project *"错误
以上红色涂抹区域是其他工程名称。 解决办法: 1、Windows->Preferences->MyEclipse,找到Installations,编辑Maven,清除其中Additional extension libraries 2、再次编译项目会遇到如下错误: Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match
似水的流年
2018/03/28
7440
使用maven插件启动工程报"Not a Maven project *"错误
以上红色涂抹区域是其他工程名称。 解决办法: 1、Windows->Preferences->Maven,找到Installations,编辑Maven,清除其中Additional extension libraries 2、再次编译项目会遇到如下错误: Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match. 3、首先,添加M2_HOME的环境变量     其次,Preference->Java->Installed JREs->Edit 选择一个jdk,添加  -Dmaven.multiModuleProjectDirectory=$M2_HOME
似水的流年
2019/12/07
5980
Maven 中依赖使用的版本号
最近为了引入一个包,在这个包的使用上看到了定义的依赖的一个版本号定义方式。<dependency> <groupId>com.configcat</groupId> <artifactId>configcat-java-client</artifactId> <version>[7.0.0,)</version></dependency>这个定义方式有点奇怪,通常我们都是指定完整的版本号的。解释经过考古后才知道,Maven 是允许进行这样定义的。根据我的理解就是 [] 和 () 各自表达的意义是不同的
HoneyMoose
2022/09/19
1.3K0
Maven 中依赖使用的版本号
maven-1:使用maven自动升级工程版本
执行下面代码,代码将依次进行检查-修改版本为release-提交仓库-修改版本到下一个版本-提交仓库,如果出现错误,需要在这个阶段解决:
千里行走
2019/07/03
1.5K0
Maven 构建错误
在pom.xml文件中的 <project> 节中添加阿里的环境仓库: <repositories> <repository> <id>alimaven</id> <url>https://maven.aliyun.com/repository/public</url> </repository> </repositories> <pluginRepositories> <pluginReposi
彼岸舞
2020/09/30
7440
maven:shade 生成快照版本(SNAPSHOT)的fat-jar,同时生成对应的source.jar
有的时候,我们需要将项目所有依赖库打成一个fat-jar,提供给客户,同时提供对应的source.jar。 这个功能很好实现在pom.xml中增加maven-shade-plugin插件执行就可以,如下:
10km
2021/03/02
9690
查看Maven版本_maven部署
Maven – Download Apache Maven​maven.apache.org
全栈程序员站长
2022/09/23
3.6K0
查看Maven版本_maven部署
Maven - 使用maven-release-plugin规范化版本发布
Maven Release Plugin(Maven 发布插件)是一个用于帮助在Maven项目中执行版本发布流程的插件。它的主要功能是简化项目版本的发布和管理,确保版本号的正确性,并自动处理与版本发布相关的任务。
小小工匠
2023/09/01
1.9K0
Maven - 使用maven-release-plugin规范化版本发布
Maven的Snapshot版本与Release版本
协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下:
后端码匠
2020/02/25
1.3K0
maven版本查看_maven最新版本
工作中,我们经常要操作maven 以及 配置maven ,有时还需要向maven 中手动添加jar 包;
全栈程序员站长
2022/09/23
8K0
maven版本查看_maven最新版本
Jenkins检测Maven项目是否引用快照包
生产环境不允许使用快照包,但人为规定终究不如脚本进行检测,所以在打war包,检测是否引用了快照包,如果引用了宣布打包失败
陈不成i
2021/06/03
7030
用户尝试登陆错误次数
由于我们将使用shiro + ehache配合使用,所以可以不用单独再引用ehcache.jar了,使用shiro-ehcache时,会自动添加ehcache-core 2.6.11。
微醺
2019/01/17
1.5K0
maven依赖的版本管理
在一个项目中,这样做的必要性不大,这种机制一般用于maven项目继承,子项目可以直接使用简化的依赖配置,从而确保和父项目版本一致。
pollyduan
2019/11/04
1.7K0
maven如何指定项目的jdk版本(使用maven-compiler-plugin)
在pom.xml中可以通过maven标准编译插件(maven-compiler-plugin)指定项目源代码、字节码的jdk版本
青山师
2023/05/04
2.3K0
maven如何指定项目的jdk版本(使用maven-compiler-plugin)

相似问题

Maven快照不生成快照版本

19

如何停止maven版本范围使用快照?

214

Maven发布插件:使用快照版本发布

25

如何摆脱maven快照版本

13

maven版本发布候选版本和快照

318
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文