是否可以像在另一个日期一样运行Maven?
我的问题是我有一个pom在一个月前使用了大量的“RELEASE”版本,但现在包中的一些更改使我的项目无法运行(某些功能的支持已经停止)。不幸的是,这种依赖性非常多,我不知道他们当时的版本,有没有办法运行maven并告诉他们下载截至指定日期为“RELEASE”版本的软件包?
我正在编辑因为我觉得我的问题解释得不好。
假设我的pom.xml
中有以下依赖项 <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>RELEASE</version>
</dependency>
如果我今天运行“mvn something”,它将获取commons-io 2.4
但是如果我两年前运行它会获取commons-io 2.2
我想运行maven并告诉他在过去的某个时间取回包的RELEASE版本。
答案 0 :(得分:1)
不,在过去的特定时间,无法解析“仿佛”版本,因此,使用显式版本而不是LATEST
或RELEASE
几乎总是优先考虑。
如果您有特定的日期,可以查看中心(例如for commons-io
)并查看在该日期之前部署的最新版本。然后,您需要编辑您的pom以使用该版本。
Central有一个API(例如those same commons-io
results as JSON),可以自动执行此操作。
答案 1 :(得分:0)
对于maven来说,这可能无法按照特定日期恢复pom文件,我认为要克服此类问题并使用SVN
,GIT
来获得更多优势。< / p>
Maven只是一个构建工具,它不像或提供任何版本控制功能,或者可以跟踪依赖项的变化。
答案 2 :(得分:0)
我不太了解maven,我不确定这会有效,但它可能会给你一些想法:
1:备份您的pom.xml文件(如果以下操作不起作用,您可以恢复)
2:删除pom.xml文件中的所有dependancy标记
3:只插入主要jar文件的主要依赖标签(例如:hibernate或spring)(而不是其他),并在标签中指定它们的(旧)版本。
4:编译。
5:我相信maven会下载那些hibernate和spring需要的任何支持jar文件(例如commons-io)的相应版本。
6:在转到他们的网页并查看过去需要的版本之后,对任何其他主要jar文件重复步骤3到5。